content.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  1. <?php
  2. include "Connection.php";
  3. $conn = new Connection();
  4. if(isset($_REQUEST["funName"])) {
  5. $db = $conn->getConnection();
  6. $fun = $_REQUEST["funName"];
  7. switch($fun) {
  8. case "contentlist":
  9. case "addcontent":
  10. case "updatecontent":
  11. case "deletecontent":
  12. case "uploadcontentfile":
  13. $fun();
  14. break;
  15. default:
  16. $conn->message(false,"PAGE NOT FOUND");exit;
  17. break;
  18. }
  19. }else
  20. {
  21. $conn->message(false,"PAGE NOT FOUND");exit;
  22. }
  23. // Supplier List
  24. function contentlist () {
  25. global $conn;
  26. try {
  27. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  28. $pn = escape_str($_REQUEST["pn"]);
  29. $nr = escape_str($_REQUEST["nr"]);
  30. $key = escape_str($_REQUEST["key"]);
  31. $cateid = escape_str($_REQUEST['cateid']);
  32. $assettopicid = escape_str($_REQUEST['assettopicid']);
  33. if(isset($_SESSION["userid"])) {
  34. $query_str = "SELECT SQL_CALC_FOUND_ROWS c.*,t.topicname FROM ".TABLE_ASSET_CONTENT." c LEFT JOIN ".TABLE_ASSET_TOPIC." t ON t.assettopicid=c.assettopicid WHERE c.is_deleted = 0 ";
  35. // Search
  36. if (!empty($key)) {
  37. $query_str.= " and ((t.topicname like '%".$key."%') OR (c.title like '%".$key."%') ) ";
  38. }
  39. if (!empty($cateid)) {
  40. $query_str.= " and t.cateid='".$cateid."'";
  41. }
  42. if (!empty($assettopicid)) {
  43. $query_str.= " and c.assettopicid='".$assettopicid."'";
  44. }
  45. $query_str.= " order by c.contentid ASC ";
  46. // Pagination
  47. if (!empty($pn) and !empty($nr)) {
  48. // Navigation
  49. $query_str.= " limit ".(($pn - 1) * $nr).", ".$nr;
  50. }
  51. // echo $query_str;exit;
  52. $query = $conn->query($query_str);
  53. //$arr['qry'] = $query_str;
  54. // Total records
  55. $rows_query = $conn->query("select FOUND_ROWS() as total_records");
  56. $rows_result = $rows_query->fetchAll(PDO::FETCH_OBJ);
  57. $total_records = $rows_result[0]->total_records;
  58. $arr['total_records'] = $total_records;
  59. $data_arr=$query->fetchAll(PDO::FETCH_OBJ);
  60. $query_str = "SELECT `id`, `rolename` FROM ".TABLE_ROLE." WHERE status=1 ";
  61. $query = $conn->query($query_str);
  62. $role_arr = $query->fetchAll(PDO::FETCH_OBJ);
  63. if(count($role_arr)>0)
  64. {
  65. foreach($role_arr as $res)
  66. {
  67. $data_role[$res->id]=$res;
  68. }
  69. }
  70. if(count($data_arr)>0)
  71. {
  72. require (dirname(__FILE__).'/awsfileserver.php');
  73. $s3=awsfileserver::connectS3();
  74. foreach($data_arr as $skey=>$res_val)
  75. {
  76. //$check_str = "SELECT * FROM ".TABLE_USER_COMPLETE_CONTENT." WHERE contentid = '".$res_val->contentid."' LIMIT 1";
  77. //$check_query = $conn->query($check_str);
  78. //$data_arr[$skey]->is_edit=($check_query->rowCount()>0)?"0":"1";
  79. $data_arr[$skey]->is_edit=1;
  80. $data_arr[$skey]->filter_role=($res_val->filter_role!='')?@explode(',',$res_val->filter_role):array();
  81. $data_arr[$skey]->filter_role_name=array();
  82. $role_data=array();
  83. if(count($data_arr[$skey]->filter_role)>0)
  84. {
  85. foreach($data_arr[$skey]->filter_role as $data)
  86. {
  87. $role_data[]=$data_role[$data];
  88. }
  89. $data_arr[$skey]->filter_role_name=$role_data;
  90. }
  91. $filter_zone_arr=array();
  92. $data_arr[$skey]->filter_zone=($res_val->filter_zone!='')?@explode(',',$res_val->filter_zone):array();
  93. if(count($data_arr[$skey]->filter_zone)>0)
  94. {
  95. foreach($data_arr[$skey]->filter_zone as $res_zone)
  96. {
  97. $filter_zone_arr[]=array('zone'=>$res_zone);
  98. }
  99. $data_arr[$skey]->filter_zone=$filter_zone_arr;
  100. }
  101. $filter_region_arr=array();
  102. $data_arr[$skey]->filter_region=($res_val->filter_region!='')?@explode(',',$res_val->filter_region):array();
  103. if(count($data_arr[$skey]->filter_region)>0)
  104. {
  105. foreach($data_arr[$skey]->filter_region as $res_region)
  106. {
  107. $filter_region_arr[]=array('city'=>$res_region);
  108. }
  109. $data_arr[$skey]->filter_region=$filter_region_arr;
  110. }
  111. $filter_dealer_arr=array();
  112. $data_arr[$skey]->filter_dealer=($res_val->filter_dealer!='')?@explode(',',$res_val->filter_dealer):array();
  113. if(count($data_arr[$skey]->filter_dealer)>0)
  114. {
  115. $dealer_quotes = array_map("quotes_array", $data_arr[$skey]->filter_dealer);
  116. $query_str = "SELECT `dealer_code`, `dealer_name` FROM ".DMS_DEALER." WHERE status='1' AND is_deleted='0' AND dealer_code IN (".@implode(',',$dealer_quotes).") GROUP BY dealer_code ";
  117. $query = $conn->query($query_str);
  118. $deal_arr = $query->fetchAll(PDO::FETCH_OBJ);
  119. $data_arr[$skey]->filter_dealer=$deal_arr;
  120. }
  121. $data_arr[$skey]->filetypeid='1';
  122. $data_arr[$skey]->file=getContentfile($res_val->contentid,$s3);
  123. $data_arr[$skey]->filetypeid=(count($data_arr[$skey]->file)>0)?$data_arr[$skey]->file[0]->filetypeid:'1';
  124. }
  125. }
  126. $arr['content'] = $data_arr;
  127. if(count($arr) != 0){
  128. //$conn->message(true, $pageData->successMsg[0], $arr);
  129. $conn->message(true,$conn->getMessage($lang,'content','success1'),$arr );
  130. }else{
  131. $conn->message(false,$conn->getMessage($lang,'content','error2'));
  132. }
  133. }
  134. else{
  135. $conn->message(false,$conn->getMessage($lang,'content','error1'));
  136. }
  137. }
  138. catch(PDOException $e){
  139. $conn->message(false,$conn->getMessage($lang,'content','error4'));
  140. }
  141. }
  142. // ADD CONTENT
  143. function addcontent () {
  144. global $conn;
  145. try {
  146. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  147. //$pageData = $conn->loadJSON($lang);
  148. if(isset($_SESSION["userid"])) {
  149. $assettopicid = escape_str($_REQUEST["assettopicid"]);
  150. $title = escape_str($_REQUEST["title"]);
  151. $description = escape_str($_REQUEST["description"]);
  152. $uploaddate=CUR_DATE;
  153. $segment =(isset($_REQUEST["segment"]))?escape_str($_REQUEST["segment"]):0;
  154. if(!($title!='' && $description!='' ) ){ $conn->message(false, 'FIELDS MISSING');exit; }
  155. //FILTER
  156. $filter_role=escape_str($_REQUEST["filter_role"]);
  157. $filter_zone=escape_str($_REQUEST["filter_zone"]);
  158. $filter_region=escape_str($_REQUEST["filter_region"]);
  159. $filter_dealer=escape_str($_REQUEST["filter_dealer"]);
  160. if(!($assettopicid!='' && $title!='') ){ $conn->message(false, 'FIELDS MISSING');exit; }
  161. $filetypeid = escape_str($_REQUEST["filetypeid"]);
  162. $status = 1;
  163. //FILE UPLOAD
  164. if(isset($_FILES['file_en_us']) && $_FILES['file_en_us']['name'])
  165. {
  166. $obj = new stdClass();
  167. $obj->filekey = 'file_en_us';
  168. $obj->size = '512'; //IN MB
  169. $obj->type = array('pdf','mp4');
  170. $conn->validateFile($obj);
  171. $obj->path = "../".S3_TOPICS_URL;
  172. $obj->filename = 'content_'.date('Ymd')."_".uniqid();
  173. $en_us_file = $conn->uploadFile($obj);
  174. $filesize=$_FILES['file_en_us']['size'];
  175. switch($filetypeid)
  176. {
  177. case '1':
  178. $filetype='PDF';
  179. break;
  180. case '2':
  181. $filetype='MP4';
  182. break;
  183. }
  184. //S3 UPLOAD
  185. //S3 LIB
  186. require (dirname(__FILE__).'/awsfileserver.php');
  187. //S3 OBJ
  188. $s3=awsfileserver::connectS3();
  189. awsfileserver::checkupload($s3,S3_BUCKET,S3_TOPICS_URL.$en_us_file,dirname(__FILE__)."/../".S3_TOPICS_URL.$en_us_file);
  190. //DELETE AFTER MOVE TO S3
  191. @unlink(dirname(__FILE__).'/../'.S3_TOPICS_URL.$en_us_file);
  192. }else
  193. {
  194. $conn->message(false,$conn->getMessage($lang,'content','error3'));
  195. }
  196. //FILE UPLOAD
  197. if(isset($_FILES['thumb_en_us']) && $_FILES['thumb_en_us']['name'])
  198. {
  199. $obj = new stdClass();
  200. $obj->filekey = 'thumb_en_us';
  201. $obj->size = '10'; //IN MB
  202. $obj->type = array('jpg','jpeg','png');
  203. $conn->validateFile($obj);
  204. $obj->path = "../".S3_TOPICS_URL;
  205. $obj->filename = 'thumbimage_'.date('Ymd')."_".uniqid();
  206. $thumb_en_us_file = $conn->uploadFile($obj);
  207. $filesize=$_FILES['thumb_en_us']['size'];
  208. //S3 UPLOAD
  209. //S3 LIB
  210. require_once (dirname(__FILE__).'/awsfileserver.php');
  211. //S3 OBJ
  212. $s3=awsfileserver::connectS3();
  213. awsfileserver::checkupload($s3,S3_BUCKET,S3_TOPICS_URL.$thumb_en_us_file,dirname(__FILE__)."/../".S3_TOPICS_URL.$thumb_en_us_file);
  214. //DELETE AFTER MOVE TO S3
  215. @unlink(dirname(__FILE__).'/../'.S3_TOPICS_URL.$thumb_en_us_file);
  216. }else
  217. {
  218. $conn->message(false,$conn->getMessage($lang,'content','error5'));
  219. }
  220. $insert = "INSERT INTO ".TABLE_ASSET_CONTENT." (`assettopicid`,segment, `title`, `description`, `uploaddate`, `filter_role`, `filter_zone`, `filter_region`, `filter_dealer`, `version`, `status`, `is_deleted`, `created_on`, `modified_on`) VALUES ('".$assettopicid."','".$segment."','".$title."','".$description."','".$uploaddate."','".$filter_role."','".$filter_zone."','".$filter_region."','".$filter_dealer."','1','".$status."','0','".NOW."','".NOW."')";
  221. $insertquery = $conn->query($insert);
  222. $contentid = $conn->lastinsetid();
  223. //DEFAULT ENGLISH FILE UPLOAD
  224. $insert_file = "INSERT INTO ".TABLE_ASSET_FILE." ( `contentid`, `language_id`, `filepath`, `thumbpath`, `filetypeid`, `filetype`, `filesize`, `filequality`, `created_on`, `modified_on`) VALUES ('".$contentid."','1','".$en_us_file."','".$thumb_en_us_file."','".$filetypeid."','".$filetype."','".$filesize."','HIGH','".NOW."','".NOW."')";
  225. $insertquery = $conn->query($insert_file);
  226. //SEND NOTIFICATION
  227. sendContentNotification ($contentid);
  228. $conn->message(true,$conn->getMessage($lang,'content','success1'),getContent($contentid));
  229. }else{
  230. $conn->message(false,$conn->getMessage($lang,'content','error1'));
  231. }
  232. }
  233. catch(PDOException $e) {
  234. $conn->message(false,$e->getMessage());
  235. }
  236. }
  237. // UPDATE CONTENT
  238. function updatecontent () {
  239. global $conn;
  240. try {
  241. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  242. //$pageData = $conn->loadJSON($lang);
  243. if(isset($_SESSION["userid"])) {
  244. $contentid = escape_str($_REQUEST["contentid"]);
  245. $assettopicid = escape_str($_REQUEST["assettopicid"]);
  246. $title = escape_str($_REQUEST["title"]);
  247. $description = escape_str($_REQUEST["description"]);
  248. $uploaddate=CUR_DATE;
  249. $segment =(isset($_REQUEST["segment"]))?escape_str($_REQUEST["segment"]):0;
  250. //FILTER
  251. $filter_role=escape_str($_REQUEST["filter_role"]);
  252. $filter_zone=escape_str($_REQUEST["filter_zone"]);
  253. $filter_region=escape_str($_REQUEST["filter_region"]);
  254. $filter_dealer=escape_str($_REQUEST["filter_dealer"]);
  255. if(!($contentid!='' && $assettopicid!='' && $title!='') ){ $conn->message(false, 'FIELDS MISSING');exit; }
  256. $query_str = "SELECT contentid FROM ".TABLE_ASSET_CONTENT." WHERE contentid = '".$contentid."' AND is_deleted='0' LIMIT 1";
  257. $query = $conn->query($query_str);
  258. $arr = $query->fetchAll(PDO::FETCH_OBJ);
  259. if(count($arr)== 1)
  260. {
  261. $update_str = "UPDATE ".TABLE_ASSET_CONTENT." SET `assettopicid`='".$assettopicid."',segment='".$segment."',`title`='".$title."', `description`='".$description."', `uploaddate`='".CUR_DATE."', `filter_role`='".$filter_role."', `filter_zone`='".$filter_zone."', `filter_region`='".$filter_region."', `filter_dealer`='".$filter_dealer."', `version`=version+1 ,`modified_on`='".NOW."' WHERE contentid = '".$contentid."'";
  262. $conn->query($update_str);
  263. $conn->message(true,$conn->getMessage($lang,'content','success1'),getContent ($contentid));
  264. }
  265. else
  266. {
  267. $conn->message(false,$conn->getMessage($lang,'content','error5'));
  268. }
  269. }else{
  270. $conn->message(false,$conn->getMessage($lang,'content','error1'));
  271. }
  272. }
  273. catch(PDOException $e) {
  274. $conn->message(false,$conn->getMessage($lang,'content','error4'));
  275. }
  276. }
  277. // DELETE CONTENT
  278. function deletecontent () {
  279. global $conn;
  280. try{
  281. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  282. if(isset($_SESSION["userid"])){
  283. $contentid = escape_str($_REQUEST["contentid"]);
  284. $deletestr = "UPDATE ".TABLE_ASSET_CONTENT." SET `is_deleted` = '1' WHERE contentid = '".$contentid."' ";
  285. $deletequery = $conn->query($deletestr);
  286. if($deletequery) {
  287. $conn->message(true,$conn->getMessage($lang,'content','success1'));
  288. }
  289. }else{
  290. $conn->message(false,$conn->getMessage($lang,'content','error1'));
  291. }
  292. }catch(PDOException $e){
  293. echo $e->getMessage();
  294. }
  295. }
  296. function uploadcontentfile()
  297. {
  298. global $conn;
  299. try {
  300. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  301. if(isset($_SESSION["userid"]))
  302. {
  303. $contentid = escape_str($_REQUEST["contentid"]);
  304. if(!($contentid!='') ){ $conn->message(false, 'CONTENT ID MISSING');exit; }
  305. $filetypeid = escape_str($_REQUEST["filetypeid"]);
  306. $language_id = escape_str($_REQUEST["language_id"]);
  307. //CHECK LANGUAGE
  308. $query_str = "SELECT * FROM ".TABLE_MASTER_LANGUAGE." WHERE language_id = '".$language_id."' AND is_deleted='0' LIMIT 1";
  309. $query = $conn->query($query_str);
  310. $langarr = $query->fetchAll(PDO::FETCH_OBJ);
  311. if(!(count($langarr)>0))
  312. {
  313. $conn->message(false,$conn->getMessage($lang,'content','error8'));
  314. }
  315. switch($filetypeid)
  316. {
  317. case '1':
  318. $filetype='PDF';
  319. break;
  320. case '2':
  321. $filetype='MP4';
  322. break;
  323. }
  324. //CHECK CONTENT EXIT
  325. $query_str = "SELECT contentid FROM ".TABLE_ASSET_CONTENT." WHERE contentid = '".$contentid."' AND is_deleted='0' LIMIT 1";
  326. $query = $conn->query($query_str);
  327. $arr = $query->fetchAll(PDO::FETCH_OBJ);
  328. $query_str = "SELECT * FROM ".TABLE_ASSET_FILE." WHERE language_id = '".$language_id."' AND contentid = '".$contentid."' LIMIT 1";
  329. $query = $conn->query($query_str);
  330. $filearr = $query->fetchAll(PDO::FETCH_OBJ);
  331. if(count($arr)== 1)
  332. {
  333. if(count($filearr)>0)
  334. {
  335. if((!(isset($_FILES['file']) && $_FILES['file']['name'])) && (!(isset($_FILES['thumb']) && $_FILES['thumb']['name'])))
  336. {
  337. $conn->message(false,$conn->getMessage($lang,'content','error3'));
  338. }
  339. if($filearr[0]->filetypeid!=$filetypeid){ $conn->message(false,$conn->getMessage($lang,'content','error7')); }
  340. }else
  341. {
  342. if(!(isset($_FILES['file']) && $_FILES['file']['name']))
  343. {
  344. $conn->message(false,$conn->getMessage($lang,'content','error3'));
  345. }
  346. if(!(isset($_FILES['thumb']) && $_FILES['thumb']['name']))
  347. {
  348. $conn->message(false,$conn->getMessage($lang,'content','error5'));
  349. }
  350. }
  351. //FILE UPLOAD
  352. $file='';
  353. $thumb_file='';
  354. if(isset($_FILES['file']) && $_FILES['file']['name'])
  355. {
  356. $obj = new stdClass();
  357. $obj->filekey = 'file';
  358. $obj->size = '512'; //IN MB
  359. $obj->type = array('pdf','mp4');
  360. $conn->validateFile($obj);
  361. $obj->path = "../".S3_TOPICS_URL;
  362. $obj->filename = 'content_'.date('Ymd')."_".uniqid();
  363. $file = $conn->uploadFile($obj);
  364. $filesize=$_FILES['file']['size'];
  365. //S3 UPLOAD
  366. //S3 LIB
  367. require (dirname(__FILE__).'/awsfileserver.php');
  368. //S3 OBJ
  369. $s3=awsfileserver::connectS3();
  370. awsfileserver::checkupload($s3,S3_BUCKET,S3_TOPICS_URL.$file,dirname(__FILE__)."/../".S3_TOPICS_URL.$file);
  371. //DELETE AFTER MOVE TO S3
  372. @unlink(dirname(__FILE__).'/../'.S3_TOPICS_URL.$file);
  373. }
  374. //FILE UPLOAD
  375. if(isset($_FILES['thumb']) && $_FILES['thumb']['name'])
  376. {
  377. $obj = new stdClass();
  378. $obj->filekey = 'thumb';
  379. $obj->size = '10'; //IN MB
  380. $obj->type = array('jpg','jpeg','png');
  381. $conn->validateFile($obj);
  382. $obj->path = "../".S3_TOPICS_URL;
  383. $obj->filename = 'thumbimage_'.date('Ymd')."_".uniqid();
  384. $thumb_file = $conn->uploadFile($obj);
  385. //S3 UPLOAD
  386. //S3 LIB
  387. require_once (dirname(__FILE__).'/awsfileserver.php');
  388. //S3 OBJ
  389. $s3=awsfileserver::connectS3();
  390. awsfileserver::checkupload($s3,S3_BUCKET,S3_TOPICS_URL.$thumb_file,dirname(__FILE__)."/../".S3_TOPICS_URL.$thumb_file);
  391. //DELETE AFTER MOVE TO S3
  392. @unlink(dirname(__FILE__).'/../'.S3_TOPICS_URL.$thumb_file);
  393. }
  394. $filecond='';
  395. if(count($filearr)>0)
  396. {
  397. $filecond.=($file!='')?" `filepath` ='".$file."', `filesize`= '".$filesize."',":'';
  398. $filecond.= ($thumb_file!='')?" `thumbpath` ='".$thumb_file."',":'';
  399. $update_file = "UPDATE ".TABLE_ASSET_FILE." SET ".$filecond." `modified_on`='".NOW."' WHERE id='".$filearr[0]->id."'";
  400. $conn->query($update_file);
  401. if($file!='')
  402. {
  403. //DELETE OLD FILE
  404. //awsfileserver::deleteobject($s3,S3_BUCKET,S3_TOPICS_URL.$filearr[0]->filepath);
  405. }
  406. if($thumb_file!='')
  407. {
  408. //DELETE OLD FILE
  409. //awsfileserver::deleteobject($s3,S3_BUCKET,S3_TOPICS_URL.$filearr[0]->thumbpath);
  410. }
  411. }else{
  412. //INSERT FILE
  413. $insert_file = "INSERT INTO ".TABLE_ASSET_FILE." ( `contentid`, `language_id`, `filepath`, `thumbpath`, `filetypeid`, `filetype`, `filesize`, `filequality`, `created_on`, `modified_on`) VALUES ('".$contentid."','".$language_id."','".$file."','".$thumb_file."','".$filetypeid."','".$filetype."','".$filesize."','HIGH','".NOW."','".NOW."')"; $conn->query($insert_file);
  414. }
  415. $conn->message(true,$conn->getMessage($lang,'content','success1'));
  416. }else
  417. {
  418. $conn->message(false,$conn->getMessage($lang,'content','error6'));
  419. }
  420. }else{
  421. $conn->message(false,$conn->getMessage($lang,'content','error1'));
  422. }
  423. }
  424. catch(PDOException $e) {
  425. $conn->message(false,$conn->getMessage($lang,'content','error4'));
  426. }
  427. }
  428. //GET CONTENT
  429. function getContent ($contentid)
  430. {
  431. global $conn;
  432. $data_arr=array();
  433. if($contentid!='')
  434. {
  435. $data_arr=$conn->getQueryValue("SELECT c.*,t.topicname FROM ".TABLE_ASSET_CONTENT." c LEFT JOIN ".TABLE_ASSET_TOPIC." t ON t.assettopicid=c.assettopicid WHERE c.contentid = '".$contentid."' LIMIT 1");
  436. //$data_arr=(count($data_arr)>0)?$data_arr[0]:array();
  437. if(count($data_arr)>0)
  438. {
  439. $check_str = "SELECT * FROM ".TABLE_USER_COMPLETE_CONTENT." WHERE contentid = '".$data_arr[0]->contentid."' LIMIT 1";
  440. $check_query = $conn->query($check_str);
  441. $data_arr[0]->is_delete=($check_query->rowCount()>0)?"0":"1";
  442. $data_arr[0]->filter_role=($data_arr[0]->filter_role!='')?@explode(',',$data_arr[0]->filter_role):array();
  443. $data_arr[0]->filter_zone=($data_arr[0]->filter_zone!='')?@explode(',',$data_arr[0]->filter_zone):array();
  444. $data_arr[0]->filter_region=($data_arr[0]->filter_region!='')?@explode(',',$data_arr[0]->filter_region):array();
  445. $data_arr[0]->filter_dealer=($data_arr[0]->filter_dealer!='')?@explode(',',$data_arr[0]->filter_dealer):array();
  446. $data_arr[0]->file=getContentfile($data_arr[0]->contentid,$s3);
  447. $data_arr[0]->filetypeid=(count($data_arr[0]->file)>0)?$data_arr[0]->file[0]->filetypeid:'1';
  448. }else
  449. {
  450. $data_arr=array();
  451. }
  452. }
  453. return $data_arr;
  454. }
  455. // GET CONTENT FILE
  456. function getContentfile ($contentid,$s3=null)
  457. {
  458. global $conn;
  459. $data_arr=array();
  460. if($contentid!='')
  461. {
  462. $data_arr=$conn->getQueryValue("SELECT f.* FROM ".TABLE_ASSET_FILE." as f JOIN ".TABLE_MASTER_LANGUAGE." as l ON f.language_id=l.language_id WHERE f.contentid = '".$contentid."' ");
  463. //$data_arr=(count($data_arr)>0)?$data_arr[0]:array();
  464. if(count($data_arr)>0)
  465. {
  466. if(!$s3)
  467. {
  468. require_once (dirname(__FILE__).'/awsfileserver.php');
  469. $s3=awsfileserver::connectS3();
  470. }
  471. foreach($data_arr as $key=>$res_val)
  472. {
  473. $filepath_url='';
  474. if($res_val->filepath!='')
  475. {
  476. $obj = new stdClass();
  477. $obj->key_name=S3_TOPICS_URL.$res_val->filepath;
  478. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  479. $filepath_url=$url;
  480. }
  481. $data_arr[$key]->filepath_url=$filepath_url;
  482. $thumbpath_url='';
  483. if($res_val->thumbpath!='')
  484. {
  485. $obj = new stdClass();
  486. $obj->key_name=S3_TOPICS_URL.$res_val->thumbpath;
  487. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  488. $thumbpath_url=$url;
  489. }
  490. $data_arr[$key]->thumbpath_url=$thumbpath_url;
  491. }
  492. }else
  493. {
  494. $data_arr=array();
  495. }
  496. }
  497. return $data_arr;
  498. }
  499. //SEND CONTENT NOTIFICATION
  500. function sendContentNotification ($contentid)
  501. {
  502. global $conn;
  503. $content_str = "SELECT a.*,t.user_type FROM `".TABLE_ASSET_CONTENT."` a join ".TABLE_ASSET_TOPIC." t ON a.assettopicid=t.assettopicid WHERE a.contentid='".$contentid."' AND a.status='1' AND a.is_deleted='0' LIMIT 1";
  504. $content_arr=$conn->getQueryValue($content_str);
  505. if(count($content_arr)>0)
  506. {
  507. $obj=new stdClass();
  508. $obj->id=$content_arr[0]->contentid;
  509. $obj->contentid=$content_arr[0]->contentid;
  510. $obj->assettopicid=$content_arr[0]->assettopicid;
  511. $notificationdata= json_encode($obj);
  512. $notificationtype='1';
  513. $notificationtitle='New Content published '.$content_arr[0]->title;
  514. $notificationtext='New Content published '.$content_arr[0]->title;
  515. $user_cond='';
  516. //ROLE
  517. if($content_arr[0]->filter_role!='')
  518. {
  519. $role_arr=@explode(',',$content_arr[0]->filter_role);
  520. if(count($role_arr)>0)
  521. {
  522. $user_cond.=" AND role IN (".@implode(',',$role_arr).")";
  523. }
  524. }
  525. //ZONE
  526. if($content_arr[0]->filter_zone!='')
  527. {
  528. $zone_arr=@explode(',',$content_arr[0]->filter_zone);
  529. if(count($zone_arr)>0)
  530. {
  531. $zone_quotes = array_map("quotes_array", $zone_arr);
  532. $user_cond.=" AND dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE zone IN (".@implode(',',$zone_quotes)."))";
  533. }
  534. }
  535. //REGION
  536. if($content_arr[0]->filter_region!='')
  537. {
  538. $region_arr=@explode(',',$content_arr[0]->filter_region);
  539. if(count($region_arr)>0)
  540. {
  541. $region_quotes = array_map("quotes_array", $region_arr);
  542. $user_cond.=" AND dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE city IN (".@implode(',',$region_quotes)."))";
  543. }
  544. }
  545. //DEALER
  546. if($content_arr[0]->filter_dealer!='')
  547. {
  548. $dealer_arr=@explode(',',$content_arr[0]->filter_dealer);
  549. if(count($dealer_arr)>0)
  550. {
  551. $dealer_quotes = array_map("quotes_array", $dealer_arr);
  552. $user_cond.=" AND dealer_code IN (".@implode(',',$dealer_quotes).")";
  553. }
  554. }
  555. //$user_cond.=($content_arr[0]->user_type=='0')?" AND role>7 AND role<14":" AND role=15";
  556. switch ($content_arr[0]->segment)
  557. {
  558. case '1':$user_cond.=' AND (segment=0 OR segment=1)';
  559. break;
  560. case '2':$user_cond.=' AND (segment=0 OR segment=2)';
  561. break;
  562. default: //$user_cond.=' AND segment=0';
  563. break;
  564. }
  565. //CHECK USER EXIST FOR NOTIFICATION
  566. $check_user_str = " SELECT userid FROM ".TABLE_USER." WHERE role>2 AND status='1' AND is_deleted='0' ".$user_cond;
  567. $check_user_arr = $conn->getQueryValue($check_user_str);
  568. $user_arr=array();
  569. if(count($check_user_arr)>0)
  570. {
  571. foreach ($check_user_arr as $res_user)
  572. {
  573. $user_arr[]=$res_user->userid;
  574. }
  575. //INSERT NOTITFICATION
  576. $conn->executeQuery("INSERT INTO `".TABLE_NOTIFICATION."` ( `notificationtitle`, `notificationtext`, `notificationdata`, `notificationtype`, `status`, `publisheddate`, `created_on`, `modified_on`) VALUES ('".escape_str($notificationtitle)."','".escape_str($notificationtext)."','".$notificationdata."','".$notificationtype."', '1','".NOW."','".NOW."','".NOW."')");
  577. $notificationid=$conn->lastinsetid();
  578. $data=array('notification_id'=>$notificationid,'title'=>$notificationtitle,'message'=>$notificationtext,'notificationtype'=>$notificationtype,'notificationdata'=>$notificationdata,'created_date'=>NOW);
  579. if(count($user_arr)>0)
  580. {
  581. $ins_arr=array();
  582. foreach($user_arr as $res)
  583. {
  584. $ins_arr[]=" ('".$notificationid."', '".$res."', '0', '".NOW."')";
  585. }
  586. $insert_chunk=array_chunk($ins_arr, 1000);
  587. foreach($insert_chunk as $chunk_ins)
  588. {
  589. $conn->executeQuery("INSERT INTO ".TABLE_NOTIFICATION_USER."(`notificationid`, `userid`, `status`, `created_on`) VALUES ".@implode(',',$chunk_ins)." ON DUPLICATE KEY UPDATE `status` =0");
  590. }
  591. $usertokenarr['ios']=array();
  592. $usertokenarr['android']=array();
  593. $user_device_str = "SELECT ud.devicetype,ud.token FROM `".TABLE_USER_DEVICES."` as ud JOIN (SELECT userid FROM ".TABLE_NOTIFICATION_USER." WHERE notificationid='".$notificationid."') as u ON ud.userid=u.userid WHERE ud.is_deleted='0' AND (devicetype='ios' OR devicetype='android') AND token!=''";
  594. $user_device_arr = $conn->getQueryValue($user_device_str);
  595. if(count($user_device_arr)>0)
  596. {
  597. foreach($user_device_arr as $res_user)
  598. {
  599. if(strtolower($res_user->devicetype)=='ios')
  600. {
  601. $usertokenarr['ios'][]=$res_user->token;
  602. }else if(strtolower($res_user->devicetype)=='android')
  603. {
  604. $usertokenarr['android'][]=$res_user->token;
  605. }
  606. }
  607. // $conn->sendUserNotification($data,$usertokenarr);
  608. }
  609. }
  610. }
  611. }
  612. }
  613. ?>