Advertisement
Guest User

Untitled

a guest
Jun 17th, 2013
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 130.86 KB | None | 0 0
  1. <?php
  2.  
  3. class MusicHandler extends MediaHandler
  4. {
  5. public $_navigationArr = array();
  6. public $_clsActiveLink = 'clsActive';
  7. public $_clsInActiveLink = 'clsInActive';
  8. public $_currentPage = '';
  9. public $artist_name = '';
  10. public $artist_id = '';
  11. public $music_title = '';
  12. public $music_owner_name = '';
  13. public $music_owner_id = '';
  14.  
  15. /**
  16. * MusicHandler::__construct()
  17. *
  18. */
  19. public function __construct()
  20. {
  21. parent::__construct();
  22. if(isMember())
  23. {
  24. $this->quickMixUrl = $this->CFG['site']['music_url'].'members/getMusicDetails.php?ajax_page=true&action=quickmix';
  25. $this->saveVolumeUrl = $this->CFG['site']['music_url'].'members/getMusicDetails.php?ajax_page=true&action=save_volume';
  26. $this->playSongsUrl = $this->CFG['site']['music_url'].'members/playSongsInPlaylist.php';
  27. }
  28. else
  29. {
  30. $this->quickMixUrl = $this->CFG['site']['music_url'].'getMusicDetails.php?ajax_page=true&action=quickmix';
  31. $this->saveVolumeUrl = $this->CFG['site']['music_url'].'getMusicDetails.php?ajax_page=true&action=save_volume';
  32. $this->playSongsUrl = $this->CFG['site']['music_url'].'playSongsInPlaylist.php';
  33. }
  34. $this->playQuickMixUrl = getUrl('playquickmix', '', '', '', 'music');
  35. //Quick Mixed songs
  36. $this->quick_mix_id_arr = array();
  37. if(isset($_SESSION['user']['quick_mixs']))
  38. $this->quick_mix_id_arr = explode(',', $_SESSION['user']['quick_mixs']);
  39. //Quick Mix Popup Window name
  40. $this->quick_mix_window_name = '';
  41. if(isset($_SESSION['user']['quick_mix_window_name']))
  42. $this->quick_mix_window_name = $_SESSION['user']['quick_mix_window_name'];
  43.  
  44. //SETTING GLOBAL VOLUME TO DEFAULT VALUE IF SESSION IS NOT INITIALIZED
  45. if(!isset($_SESSION['music_global_voulme']))
  46. $_SESSION['music_global_voulme'] = 100;
  47. }
  48.  
  49. /**
  50. * musicHandler::deleteSongFromPlaylist()
  51. *
  52. * @param mixed $playlist_id
  53. * @return
  54. */
  55. public function deleteSongFromPlaylist()
  56. {
  57. $song_id = $this->fields_arr['song_id'];
  58.  
  59. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_in_playlist'].' '.
  60. 'WHERE music_id IN ('.$song_id.') AND playlist_id='.$this->fields_arr['playlist_id'] ;
  61.  
  62. $stmt = $this->dbObj->Prepare($sql);
  63. $rs = $this->dbObj->Execute($stmt);
  64. if (!$rs)
  65. trigger_db_error($this->dbObj);
  66.  
  67. $affected_count = $this->dbObj->Affected_Rows();
  68. $this->updatePlaylistTable($this->fields_arr['playlist_id'], $affected_count);
  69. }
  70.  
  71. /**
  72. * musicHandler::updatePlaylistTable()
  73. *
  74. * @param mixed $playlist_id
  75. * @return
  76. */
  77. public function updatePlaylistTable($playlist_id, $affected_count = 0)
  78. {
  79. if($affected_count)
  80. {
  81. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_playlist'].
  82. ' SET total_tracks=total_tracks - '.$affected_count.' WHERE playlist_id='.$this->dbObj->Param('playlist_id').'';
  83. }
  84. else
  85. {
  86. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_playlist'].
  87. ' SET total_tracks=total_tracks+1 WHERE playlist_id='.$this->dbObj->Param('playlist_id').'';
  88. }
  89. $stmt = $this->dbObj->Prepare($sql);
  90. $rs = $this->dbObj->Execute($stmt, array($playlist_id));
  91. if (!$rs)
  92. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  93.  
  94. return true;
  95. }
  96. /**
  97. * musicHandler::insertSongtoPlaylist()
  98. *
  99. * @param mixed $playlist_id
  100. * @param mixed $song_id
  101. * @return
  102. */
  103. public function insertSongtoPlaylist($playlist_id, $song_id)
  104. {
  105. if($song_id==0)
  106. return;
  107.  
  108. //CHECK SONG IS ALREADY IN PLAYLIST //
  109.  
  110. $sql = 'SELECT music_in_playlist_id FROM '.$this->CFG['db']['tbl']['music_in_playlist'].' '.
  111. 'WHERE playlist_id ='.$this->dbObj->Param('playlist_id').' AND '.
  112. 'music_id ='.$this->dbObj->Param('music_id').'';
  113.  
  114. $stmt = $this->dbObj->Prepare($sql);
  115. $rs = $this->dbObj->Execute($stmt, array($playlist_id, $song_id));
  116. if (!$rs)
  117. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  118.  
  119. $row = $rs->FetchRow();
  120. if($row['music_in_playlist_id'] == '' or !isset($row['music_in_playlist_id']))
  121. {
  122. // FIND ORDER SONG IN PLAYLIST //
  123.  
  124. $sql = 'SELECT order_id FROM '.$this->CFG['db']['tbl']['music_in_playlist'].' '.
  125. 'WHERE playlist_id ='.$this->dbObj->Param('playlist_id');
  126.  
  127.  
  128. $stmt = $this->dbObj->Prepare($sql);
  129. $rs = $this->dbObj->Execute($stmt, array($playlist_id));
  130. if (!$rs)
  131. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  132.  
  133. $row = $rs->FetchRow();
  134. $order_id = $row['order_id'] + 1;
  135.  
  136. //INSERT SONG INTO PLAYLIST //
  137.  
  138. $sql = 'INSERT INTO '.$this->CFG['db']['tbl']['music_in_playlist'].' '.
  139. 'SET playlist_id='.$this->dbObj->Param('playlist_id').', music_id='.$this->dbObj->Param('music_id').', '.
  140. 'order_id='.$this->dbObj->Param('order_id').', date_added=NOW()';
  141.  
  142. $value_arr = array($playlist_id, $song_id, $order_id);
  143. $stmt = $this->dbObj->Prepare($sql);
  144. $rs = $this->dbObj->Execute($stmt, $value_arr);
  145. if (!$rs)
  146. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  147. //UPDATE PLAYLIST TABLE total_tracks
  148. $this->updatePlaylistTable($playlist_id);
  149. }
  150. return true;
  151. }
  152.  
  153. /**
  154. * musicHandler::createplaylist()
  155. *
  156. * @return
  157. */
  158. public function createplaylist()
  159. {
  160. if(isset($this->fields_arr['playlist_id']) and $this->fields_arr['playlist_id'] != '')
  161. {
  162. $sql = 'SELECT playlist_tags FROM '.$this->CFG['db']['tbl']['music_playlist'].
  163. ' WHERE playlist_id ='.$this->dbObj->Param('playlist_id').'';
  164.  
  165. $stmt = $this->dbObj->Prepare($sql);
  166. $rs = $this->dbObj->Execute($stmt, array($this->fields_arr['playlist_id']));
  167. if (!$rs)
  168. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  169.  
  170. $row = $rs->FetchRow();
  171. //Update music_playlist detail
  172. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_playlist'].
  173. ' SET playlist_name='.$this->dbObj->Param('playlist_name').', playlist_description='.$this->dbObj->Param('playlist_description').
  174. ', playlist_tags='.$this->dbObj->Param('playlist_tags').' ';
  175. $sql .= ', allow_comments='.$this->dbObj->Param('allow_comments').', allow_ratings='.$this->dbObj->Param('allow_ratings').', allow_embed='.$this->dbObj->Param('allow_embed').'';
  176. $sql .= ' WHERE playlist_id='.$this->dbObj->Param('playlist_id');
  177. $value_arr = array($this->fields_arr['playlist_name'], $this->fields_arr['playlist_description'], $this->fields_arr['playlist_tags'], $this->fields_arr['allow_comments'], $this->fields_arr['allow_ratings'], $this->fields_arr['allow_embed'], $this->fields_arr['playlist_id']);
  178.  
  179. if (!$this->chkIsAdminSide())
  180. {
  181. $sql .= ' AND user_id='.$this->dbObj->Param('user_id');
  182. $value_arr[] = $this->CFG['user']['user_id'];
  183. }
  184.  
  185. $stmt = $this->dbObj->Prepare($sql);
  186. $rs = $this->dbObj->Execute($stmt, $value_arr);
  187. if (!$rs)
  188. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  189.  
  190. $playlist_id = $this->fields_arr['playlist_id'];
  191. //Edit music playList tags
  192. $this->editMusicPlaylistTags($row['playlist_tags']);
  193. }
  194. else
  195. {
  196. //Create Playlis detail
  197. $sql = 'INSERT INTO '.$this->CFG['db']['tbl']['music_playlist'].
  198. ' SET user_id='.$this->dbObj->Param('user_id').', playlist_name='.$this->dbObj->Param('playlist_name').', playlist_description='.$this->dbObj->Param('playlist_description').
  199. ', allow_comments='.$this->dbObj->Param('allow_comments').', allow_ratings='.$this->dbObj->Param('allow_ratings').', allow_embed='.$this->dbObj->Param('allow_embed').
  200. ', playlist_tags='.$this->dbObj->Param('playlist_tags').', date_added=NOW()';
  201.  
  202. $value_arr = array($this->CFG['user']['user_id'], $this->fields_arr['playlist_name'], $this->fields_arr['playlist_description'], $this->fields_arr['allow_comments'], $this->fields_arr['allow_ratings'], $this->fields_arr['allow_embed'], $this->fields_arr['playlist_tags']);
  203.  
  204. $stmt = $this->dbObj->Prepare($sql);
  205. $rs = $this->dbObj->Execute($stmt, $value_arr);
  206. if (!$rs)
  207. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  208.  
  209. $playlist_id = $this->dbObj->Insert_ID();
  210. if($this->_currentPage != 'createplaylist')
  211. $this->playlistCreateActivity($playlist_id);
  212. //Create music playlist tags
  213. $this->addMusicPlaylistTag();
  214. }
  215. return $playlist_id;
  216. }
  217.  
  218. /**
  219. * musicHandler::deleteMusicPlaylist()
  220. * Here we deleted playlist related table , activity & playlist table
  221. * @return
  222. */
  223. public function deleteMusicPlaylist()
  224. {
  225. $playlist_ids = $this->fields_arr['playlist_ids'];
  226. //DELETED PLAYLIST TAGS//
  227. $this->deleteMusicPlaylistTag($playlist_ids);
  228. // *********Delete records from PLAYLIST related tables start*****
  229. $tablename_arr = array('music_playlist_comments', 'music_playlist_favorite', 'music_playlist_listened', 'music_playlist_featured', 'music_playlist_viewed', 'music_playlist_rating');
  230. for($i=0;$i<sizeof($tablename_arr);$i++)
  231. {
  232. $sql = 'DELETE FROM '.$this->CFG['db']['tbl'][$tablename_arr[$i]].' WHERE playlist_id IN(' . $playlist_ids . ')';
  233.  
  234. $stmt = $this->dbObj->Prepare($sql);
  235. $rs = $this->dbObj->Execute($stmt);
  236. if (!$rs)
  237. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  238. }
  239.  
  240. //DELETE PLAYLIST RELATED ACTIVITY //
  241. $action_key = array('playlist_create', 'playlist_comment', 'playlist_rated', 'playlist_featured', 'playlist_favorite', 'playlist_share');
  242. for($inc=0;$inc<count($action_key);$inc++)
  243. {
  244. $condition = ' SUBSTRING(action_value, 1, 1 ) IN ('.$playlist_ids.') AND action_key = \''.$action_key[$inc].'\'';
  245. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_activity'].
  246. ' WHERE '.$condition;
  247.  
  248. $stmt = $this->dbObj->Prepare($sql);
  249. $rs = $this->dbObj->Execute($stmt);
  250. if (!$rs)
  251. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  252.  
  253. }
  254.  
  255. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_playlist'].' '.
  256. 'WHERE playlist_id IN ('.$playlist_ids.')' ;
  257.  
  258. $stmt = $this->dbObj->Prepare($sql);
  259. $rs = $this->dbObj->Execute($stmt);
  260. if (!$rs)
  261. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  262.  
  263. return true;
  264. }
  265.  
  266. /**
  267. * musicHandler::deleteMusicPlaylistTag()
  268. *
  269. * @param mixed $playlist_id
  270. * @return
  271. */
  272. public function deleteMusicPlaylistTag($playlist_id)
  273. {
  274. // DELETE TAGS
  275. $sql='SELECT playlist_tags FROM '.$this->CFG['db']['tbl']['music_playlist'].
  276. ' WHERE playlist_id IN('.$playlist_id.')';
  277.  
  278. $stmt = $this->dbObj->Prepare($sql);
  279. $rs = $this->dbObj->Execute($stmt);
  280. if (!$rs)
  281. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  282.  
  283. while($tag_row = $rs->FetchRow())
  284. {
  285. $tag=explode(' ',$tag_row['playlist_tags']);
  286. for($i=0;$i<count($tag);$i++)
  287. {
  288. $sql='SELECT playlist_id FROM '.$this->CFG['db']['tbl']['music_playlist'].
  289. ' WHERE concat( \' \', playlist_tags, \' \' ) LIKE "% '.$tag[$i].' %" AND playlist_id NOT IN('.$playlist_id.')';
  290.  
  291. $stmt = $this->dbObj->Prepare($sql);
  292. $rs_tag = $this->dbObj->Execute($stmt);
  293. if (!$rs_tag)
  294. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  295. if(!$row = $rs_tag->FetchRow())
  296. {
  297. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_playlist_tags'].
  298. ' WHERE tag_name=\''.$tag[$i].'\'';
  299. $stmt = $this->dbObj->Prepare($sql);
  300. $rs_delete = $this->dbObj->Execute($stmt);
  301. if (!$rs_delete)
  302. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  303. }
  304. }
  305. }
  306. // DELETE TAG END
  307. }
  308.  
  309. /**
  310. * musicPlaylistManage::getMusicPlaylist()
  311. *
  312. * @return
  313. */
  314. public function getMusicPlaylist()
  315. {
  316. $sql ='SELECT playlist_id, playlist_name, playlist_description, playlist_tags, allow_comments, allow_ratings, allow_embed FROM '.$this->CFG['db']['tbl']['music_playlist'].
  317. ' WHERE playlist_id='.$this->dbObj->Param('playlist_id').' ';
  318.  
  319. $value_arr = array($this->fields_arr['playlist_id']);
  320. if (!$this->chkIsAdminSide())
  321. {
  322. $sql .= 'AND user_id='.$this->dbObj->Param('user_id');
  323. $value_arr[] = $this->CFG['user']['user_id'];
  324. }
  325.  
  326. $stmt = $this->dbObj->Prepare($sql);
  327. $rs = $this->dbObj->Execute($stmt, $value_arr);
  328. if (!$rs)
  329. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  330.  
  331. $row = $rs->FetchRow();
  332. if(isset($row['playlist_id']))
  333. {
  334. $this->fields_arr['playlist_name'] = $row['playlist_name'];
  335. $this->fields_arr['playlist_description'] = $row['playlist_description'];
  336. $this->fields_arr['playlist_tags'] = $row['playlist_tags'];
  337. $this->fields_arr['allow_comments'] = $row['allow_comments'];
  338. $this->fields_arr['allow_ratings'] = $row['allow_ratings'];
  339. $this->fields_arr['allow_embed'] = $row['allow_embed'];
  340. $this->playlist_tags = $row['playlist_tags'];
  341. return true;
  342. }
  343. else
  344. {
  345. return false;
  346. }
  347.  
  348. }
  349.  
  350. /**
  351. * musicPlaylistManage::getPlaylistName()
  352. *
  353. * @param mixed $playlist
  354. * @param string $err_tip
  355. * @return
  356. */
  357. public function getPlaylistName()
  358. {
  359. $sql ='SELECT playlist_name FROM '.$this->CFG['db']['tbl']['music_playlist'].' WHERE playlist_id='.$this->dbObj->Param('playlist_id');
  360. $stmt = $this->dbObj->Prepare($sql);
  361. $rs = $this->dbObj->Execute($stmt, array($this->CFG['user']['user_id']));
  362. if (!$rs)
  363. trigger_db_error($this->dbObj);
  364. if($rs->PO_RecordCount())
  365. {
  366. $row = $rs->FetchRow();
  367. return $row['playlist_name'];
  368. }
  369. }
  370.  
  371. /**
  372. * musicPlaylistManage::chkplaylistExits()
  373. *
  374. * @param mixed $playlist
  375. * @param string $err_tip
  376. * @return
  377. */
  378. public function chkPlaylistExits($playlist, $err_tip='')
  379. {
  380. $sql = 'SELECT COUNT(playlist_id) AS count FROM '.$this->CFG['db']['tbl']['music_playlist'].' '.
  381. 'WHERE UCASE(playlist_name) = UCASE('.$this->dbObj->Param($this->fields_arr[$playlist]).') '.
  382. ' AND user_id=\''.$this->CFG['user']['user_id'].'\' ';
  383.  
  384. $fields_value_arr[] = $this->fields_arr[$playlist];
  385.  
  386. if ($this->fields_arr['playlist_id'])
  387. {
  388. $sql .= ' AND playlist_id != '.$this->dbObj->Param($this->fields_arr['playlist_id']);
  389. $fields_value_arr[] = $this->fields_arr['playlist_id'];
  390. }
  391.  
  392. $stmt = $this->dbObj->Prepare($sql);
  393. $rs = $this->dbObj->Execute($stmt, array($fields_value_arr));
  394. if (!$rs)
  395. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  396.  
  397. $row = $rs->FetchRow();
  398.  
  399. if(!$row['count'])
  400. {
  401. return true;
  402. }
  403. $this->fields_err_tip_arr['playlist_name'] = $err_tip;
  404. return false;
  405. }
  406.  
  407. /**
  408. * musicHandler::addMusicPlaylistTag()
  409. *
  410. * @return
  411. */
  412. public function addMusicPlaylistTag()
  413. {
  414. $tag_arr = explode(' ', $this->fields_arr['playlist_tags']);
  415. $tag_arr = array_unique($tag_arr);
  416. if($key = array_search('', $tag_arr))
  417. unset($tag_arr[$key]);
  418.  
  419. foreach($tag_arr as $key=>$value)
  420. {
  421. if((strlen($value)<$this->CFG['fieldsize']['music_playlist_tags']['min'])
  422. or (strlen($value)>$this->CFG['fieldsize']['music_playlist_tags']['max']))
  423. continue;
  424.  
  425. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_playlist_tags'].' SET result_count=result_count+1'.
  426. ' WHERE tag_name='.$this->dbObj->Param('playlist_tags');
  427.  
  428. $stmt = $this->dbObj->Prepare($sql);
  429. $rs = $this->dbObj->Execute($stmt, array($value));
  430. if (!$rs)
  431. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  432.  
  433. if(!$this->dbObj->Affected_Rows())
  434. {
  435. $sql = 'INSERT INTO '.$this->CFG['db']['tbl']['music_playlist_tags'].' SET'.
  436. ' tag_name='.$this->dbObj->Param('playlist_tags').', result_count=1';
  437.  
  438. $stmt = $this->dbObj->Prepare($sql);
  439. $rs = $this->dbObj->Execute($stmt, array($value));
  440. if (!$rs)
  441. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  442. }
  443. }
  444. }
  445.  
  446. /**
  447. * musicHandler::editMusicPlaylistTags()
  448. *
  449. * @return
  450. */
  451. public function editMusicPlaylistTags($oldtag_arr)
  452. {
  453. $tag_arr = explode(' ', $this->fields_arr['playlist_tags']);
  454. $tag_arr = array_unique($tag_arr);
  455. if($key = array_search('', $tag_arr))
  456. unset($tag_arr[$key]);
  457.  
  458. //Remove old tags
  459. $oldtag_arr = explode(' ', $oldtag_arr);
  460. foreach($oldtag_arr as $oldTag)
  461. {
  462. $sql = 'SELECT 1 FROM '.$this->CFG['db']['tbl']['music_playlist'].
  463. ' WHERE playlist_tags = "%'.$oldTag.'%"';
  464.  
  465. $stmt = $this->dbObj->Prepare($sql);
  466. $rs = $this->dbObj->Execute($stmt);
  467. if (!$rs)
  468. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  469.  
  470. if(!$rs->PO_RecordCount())
  471. {
  472. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_playlist_tags'].
  473. ' WHERE tag_name='.$this->dbObj->Param('tag_name');
  474.  
  475. $stmt = $this->dbObj->Prepare($sql);
  476. $rs = $this->dbObj->Execute($stmt, array($oldTag));
  477. if (!$rs)
  478. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  479. }
  480. }
  481. // Add New Tag `
  482. foreach($tag_arr as $key=>$value)
  483. {
  484. if((strlen($value) < $this->CFG['fieldsize']['music_playlist_tags']['min'])
  485. or (strlen($value)>$this->CFG['fieldsize']['music_playlist_tags']['max']))
  486. continue;
  487.  
  488. $sql = 'SELECT 1 FROM '.$this->CFG['db']['tbl']['music_playlist_tags'].
  489. ' WHERE tag_name = '.$this->dbObj->Param('tag');
  490.  
  491. $stmt = $this->dbObj->Prepare($sql);
  492. $rs = $this->dbObj->Execute($stmt, array($value));
  493. if (!$rs)
  494. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  495.  
  496. if(!$rs->PO_RecordCount())
  497. {
  498. $sql = 'INSERT INTO '.$this->CFG['db']['tbl']['music_playlist_tags'].' SET'.
  499. ' tag_name='.$this->dbObj->Param('music_tag').', result_count=1';
  500.  
  501. $stmt = $this->dbObj->Prepare($sql);
  502. $rs = $this->dbObj->Execute($stmt, array($value));
  503. if (!$rs)
  504. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  505. }
  506. }
  507.  
  508. $sql = 'SELECT tag_name FROM '.$this->CFG['db']['tbl']['music_playlist_tags'];
  509.  
  510. $stmt = $this->dbObj->Prepare($sql);
  511. $tag_row = $this->dbObj->Execute($stmt);
  512. if (!$tag_row)
  513. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  514.  
  515. while($row = $tag_row->FetchRow())
  516. {
  517. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_playlist_tags'].
  518. ' SET result_count = (select count(playlist_id) from '.$this->CFG['db']['tbl']['music_playlist'].
  519. ' where playlist_tags=\''.$row['tag_name'].'\') where tag_name=\''.$row['tag_name'].'\'';
  520.  
  521. $stmt = $this->dbObj->Prepare($sql);
  522. $rs = $this->dbObj->Execute($stmt);
  523. if (!$rs)
  524. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  525. }
  526. return true;
  527. }
  528. /**
  529. * musicHandler::getAlbumDetails()
  530. *
  531. * @param mixed $music_album_id
  532. * @return
  533. */
  534. public function getAlbumDetails($music_album_id)
  535. {
  536. $sql = 'SELECT count(music_id) as total_tracks, sum(total_views) as total_views, sum(total_plays) as total_plays FROM '.$this->CFG['db']['tbl']['music'].' AS m LEFT JOIN '.$this->CFG['db']['tbl']['users'].
  537. ' AS u ON m.user_id = u.user_id WHERE m.music_status = \'OK\' AND u.usr_status=\'Ok\' AND m.music_album_id = '.$this->dbObj->Param('music_album_id');
  538.  
  539. $stmt = $this->dbObj->Prepare($sql);
  540. $rs = $this->dbObj->Execute($stmt, array($music_album_id));
  541. if (!$rs)
  542. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  543.  
  544. return $row = $rs->FetchRow();
  545. }
  546.  
  547. /**
  548. * musicHandler::getMusicName()
  549. *
  550. * @param Integer $text
  551. * @return void
  552. */
  553. public function getMusicName($text)
  554. {
  555. return getMusicName($text);
  556. }
  557.  
  558. /**
  559. * musicHandler::getMusicImageName()
  560. *
  561. * @param Integer $text
  562. * @return void
  563. */
  564. public function getMusicImageName($text, $thumb_name='')
  565. {
  566. return getMusicImageName($text, $thumb_name);
  567. }
  568.  
  569. /**
  570. * musicHandler::isValidArtistID()
  571. *
  572. * @return
  573. */
  574. public function isValidArtistID()
  575. {
  576. $sql = 'SELECT ma.music_artist_id, ma.artist_name FROM '.$this->CFG['db']['tbl']['music_artist'].' AS ma '.
  577. 'WHERE ma.music_artist_id = '.$this->dbObj->Param('artist_id');
  578.  
  579. $stmt = $this->dbObj->Prepare($sql);
  580. $rs = $this->dbObj->Execute($stmt, array($this->fields_arr['artist_id']));
  581. if (!$rs)
  582. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  583.  
  584. $row = $rs->FetchRow();
  585. if(empty($row))
  586. {
  587. return false;
  588. }
  589. else
  590. {
  591. $this->fields_arr['artist_id'] = $row['music_artist_id'];
  592. $this->artist_name = $row['artist_name'];
  593. $this->artist_id = $row['music_artist_id'];
  594. return true;
  595. }
  596. }
  597.  
  598. /**
  599. * musicHandler::getArtistImageDetail()
  600. *
  601. * @return array
  602. */
  603. public function getArtistImageDetail($artist_id, $mainImage = '')
  604. {
  605. $imageCondition = '';
  606. if($mainImage == 'Yes')
  607. $imageCondition = 'main_img = \'1\' AND status = \'Yes\' AND ';
  608. $sql = 'SELECT music_artist_image, image_ext, thumb_width, thumb_height FROM '.$this->CFG['db']['tbl']['music_artist_image'].
  609. ' WHERE '.$imageCondition.' music_artist_id = '.$this->dbObj->Param('music_artist_id');
  610.  
  611. $stmt = $this->dbObj->Prepare($sql);
  612. $rs = $this->dbObj->Execute($stmt, array($artist_id));
  613. if (!$rs)
  614. trigger_db_error($this->dbObj);
  615.  
  616. $row = $rs->FetchRow();
  617. return $row;
  618. }
  619.  
  620.  
  621. /**
  622. * musicHandler::storeArtistImagesTempServer()
  623. *
  624. * @param mixed $uploadUrl
  625. * @param mixed $extern
  626. * @return
  627. */
  628. public function storeArtistImagesTempServer($uploadUrl, $extern)
  629. {
  630. //GET LARGE IMAGE
  631. @chmod($uploadUrl.'.'.$extern, 0777);
  632. if($this->CFG['admin']['musics']['artist_large_name']=='L')
  633. {
  634. if($this->CFG['admin']['musics']['artist_large_height'] or $this->CFG['admin']['musics']['artist_large_width'])
  635. {
  636. $this->imageObj->resize($this->CFG['admin']['musics']['artist_large_width'], $this->CFG['admin']['musics']['artist_large_height'], '-');
  637. $this->imageObj->output_resized($uploadUrl.'L.'.$extern, strtoupper($extern));
  638. $image_info = getImageSize($uploadUrl.'L.'.$extern);
  639. $this->L_WIDTH = $image_info[0];
  640. $this->L_HEIGHT = $image_info[1];
  641. }
  642. else
  643. {
  644. $this->imageObj->output_original($uploadUrl.'L.'.$extern, strtoupper($extern));
  645. $image_info = getImageSize($uploadUrl.'L.'.$extern);
  646. $this->L_WIDTH = $image_info[0];
  647. $this->L_HEIGHT = $image_info[1];
  648. }
  649.  
  650. }
  651.  
  652. //GET THUMB IMAGE
  653. if($this->CFG['admin']['musics']['artist_thumb_name']=='T')
  654. {
  655. $this->imageObj->resize($this->CFG['admin']['musics']['artist_thumb_width'], $this->CFG['admin']['musics']['artist_thumb_height'], '-');
  656. $this->imageObj->output_resized($uploadUrl.'T.'.$extern, strtoupper($extern));
  657. $image_info = getImageSize($uploadUrl.'T.'.$extern);
  658. $this->T_WIDTH = $image_info[0];
  659. $this->T_HEIGHT = $image_info[1];
  660. }
  661.  
  662. //GET SMALL IMAGE
  663. if($this->CFG['admin']['musics']['artist_small_name']=='S')
  664. {
  665. $this->imageObj->resize($this->CFG['admin']['musics']['artist_small_width'], $this->CFG['admin']['musics']['artist_small_height'], '-');
  666. $this->imageObj->output_resized($uploadUrl.'S.'.$extern, strtoupper($extern));
  667. $image_info = getImageSize($uploadUrl.'S.'.$extern);
  668. $this->S_WIDTH = $image_info[0];
  669. $this->S_HEIGHT = $image_info[1];
  670. }
  671.  
  672. //GET MINI IMAGE
  673. if($this->CFG['admin']['musics']['artist_mini_name']=='M')
  674. {
  675. $this->imageObj->resize($this->CFG['admin']['musics']['artist_mini_width'], $this->CFG['admin']['musics']['artist_mini_height'], '-');
  676. $this->imageObj->output_resized($uploadUrl.'M.'.$extern, strtoupper($extern));
  677. $image_info = getImageSize($uploadUrl.'M.'.$extern);
  678. $this->M_WIDTH = $image_info[0];
  679. $this->M_HEIGHT = $image_info[1];
  680. }
  681.  
  682. $wname = $this->CFG['admin']['musics']['artist_large_name'].'_WIDTH';
  683. $hname = $this->CFG['admin']['musics']['artist_large_name'].'_HEIGHT';
  684. $this->L_WIDTH = $this->$wname;
  685. $this->L_HEIGHT = $this->$hname;
  686.  
  687. $wname = $this->CFG['admin']['musics']['artist_thumb_name'].'_WIDTH';
  688. $hname = $this->CFG['admin']['musics']['artist_thumb_name'].'_HEIGHT';
  689. $this->T_WIDTH = $this->$wname;
  690. $this->T_HEIGHT = $this->$hname;
  691.  
  692. $wname = $this->CFG['admin']['musics']['artist_small_name'].'_WIDTH';
  693. $hname = $this->CFG['admin']['musics']['artist_small_name'].'_HEIGHT';
  694. $this->S_WIDTH = $this->$wname;
  695. $this->S_HEIGHT = $this->$hname;
  696.  
  697. $wname = $this->CFG['admin']['musics']['artist_mini_name'].'_WIDTH';
  698. $hname = $this->CFG['admin']['musics']['artist_mini_name'].'_HEIGHT';
  699. $this->M_WIDTH = $this->$wname;
  700. $this->M_HEIGHT = $this->$hname;
  701. }
  702.  
  703. /**
  704. * musicHandler::uploadArtistImageDetail()
  705. *
  706. * @param mixed $insert_id
  707. * @return
  708. */
  709. public function updateArtistImageDetail($insert_id)
  710. {
  711. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_artist_image'].' SET '.
  712. 'large_width='.$this->dbObj->Param('large_width').', large_height='.$this->dbObj->Param('large_height').', '.
  713. 'thumb_width='.$this->dbObj->Param('thumb_width').', thumb_height='.$this->dbObj->Param('thumb_height').', '.
  714. 'small_width='.$this->dbObj->Param('small_width').', small_height='.$this->dbObj->Param('small_height').', '.
  715. 'mini_width='.$this->dbObj->Param('mini_width').', mini_height='.$this->dbObj->Param('mini_height').' '.
  716. 'WHERE music_artist_image = '.$this->dbObj->Param('music_artist_image');
  717.  
  718. $stmt = $this->dbObj->Prepare($sql);
  719. $rs = $this->dbObj->Execute($stmt, array($this->L_WIDTH, $this->L_HEIGHT, $this->T_WIDTH, $this->T_HEIGHT, $this->S_WIDTH, $this->S_HEIGHT, $this->M_WIDTH, $this->M_HEIGHT, $insert_id));
  720. if (!$rs)
  721. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  722.  
  723. return true;
  724. }
  725.  
  726. /**
  727. * musicHandler::isValidMusicID()
  728. *
  729. * @param mixed $music_id
  730. * @param string $page
  731. * @return
  732. */
  733. public function isValidMusicID($music_id, $page='')
  734. {
  735. $isValidMusicID_arr = array();
  736. global $smartyObj;
  737.  
  738. if($page == 'addlyrics')
  739. {
  740. $sql = 'SELECT m.music_id, m.music_title, m.music_artist, m.music_thumb_ext, m.music_server_url, m.thumb_width, m.thumb_height, u.user_id, u.user_name, mfs.file_name FROM '.$this->CFG['db']['tbl']['music'].' AS m JOIN '.$this->CFG['db']['tbl']['users'].' '.
  741. ' AS u ON m.user_id=u.user_id JOIN '.$this->CFG['db']['tbl']['music_files_settings'].' AS mfs ON mfs.music_file_id = m.thumb_name_id WHERE m.music_status = \'Ok\' AND u.usr_status = \'Ok\' AND music_id = '.$this->dbObj->Param('music_id');
  742. }
  743. elseif($page == 'morelyrics')
  744. {
  745. $sql = 'SELECT m.music_id, m.music_title, m.music_artist, m.music_thumb_ext, m.music_server_url, m.thumb_width, m.thumb_height, u.user_id, u.user_name, mfs.file_name FROM '.$this->CFG['db']['tbl']['music'].' AS m JOIN '.$this->CFG['db']['tbl']['users'].' '.
  746. ' AS u ON m.user_id=u.user_id JOIN '.$this->CFG['db']['tbl']['music_files_settings'].' AS mfs ON mfs.music_file_id = m.thumb_name_id WHERE m.music_status = \'Ok\' AND u.usr_status = \'Ok\' AND music_id = '.$this->dbObj->Param('music_id');
  747. }
  748. elseif($page == 'admin')
  749. {
  750. $sql = 'SELECT m.music_id, m.music_title, m.music_artist, m.music_thumb_ext, m.music_server_url, m.thumb_width, m.thumb_height, u.user_id, u.user_name, mfs.file_name FROM '.$this->CFG['db']['tbl']['music'].' AS m JOIN '.$this->CFG['db']['tbl']['users'].' '.
  751. ' AS u ON m.user_id=u.user_id JOIN '.$this->CFG['db']['tbl']['music_files_settings'].' AS mfs ON mfs.music_file_id = m.thumb_name_id WHERE m.music_status = \'Ok\' AND u.usr_status = \'Ok\' AND music_id = '.$this->dbObj->Param('music_id');
  752. }
  753. elseif($page == 'viewlyrics')
  754. {
  755. $sql = 'SELECT m.music_id, m.music_title, m.music_artist, m.music_thumb_ext, m.music_server_url, m.thumb_width, m.thumb_height, u.user_id, u.user_name, mfs.file_name FROM '.$this->CFG['db']['tbl']['music'].' AS m JOIN '.$this->CFG['db']['tbl']['users'].' '.
  756. ' AS u ON m.user_id=u.user_id JOIN '.$this->CFG['db']['tbl']['music_files_settings'].' AS mfs ON mfs.music_file_id = m.thumb_name_id WHERE m.music_status = \'Ok\' AND u.usr_status = \'Ok\' AND music_id = '.$this->dbObj->Param('music_id');
  757. }
  758. else
  759. {
  760. $sql = 'SELECT m.music_id, m.music_title, m.music_artist, m.music_thumb_ext, m.music_server_url, m.thumb_width, m.thumb_height, u.user_id, u.user_name, mfs.file_name FROM '.$this->CFG['db']['tbl']['music'].' AS m JOIN '.$this->CFG['db']['tbl']['users'].' '.
  761. ' AS u ON m.user_id=u.user_id JOIN '.$this->CFG['db']['tbl']['music_files_settings'].' AS mfs ON mfs.music_file_id = m.thumb_name_id WHERE m.music_status = \'Ok\' AND u.usr_status = \'Ok\' AND m.user_id = \''.$this->CFG['user']['user_id'].'\' AND music_id = '.$this->dbObj->Param('music_id');
  762. }
  763.  
  764. $stmt = $this->dbObj->Prepare($sql);
  765. $rs = $this->dbObj->Execute($stmt, array($music_id));
  766. if (!$rs)
  767. trigger_db_error($this->dbObj);
  768.  
  769. $row = $rs->FetchRow();
  770. if(!empty($row))
  771. {
  772. $isValidMusicID_arr = $row;
  773. $this->music_title = $row['music_title'];
  774. $this->artist_name = $row['music_artist'];
  775. $this->music_owner_name = $row['user_name'];
  776. $this->music_owner_id = $row['user_id'];
  777. $musics_folder = $this->CFG['media']['folder'] . '/' . $this->CFG['admin']['musics']['folder'] . '/' .$this->CFG['admin']['musics']['thumbnail_folder'] . '/';
  778. $isValidMusicID_arr['music_image_src'] = '';
  779. $isValidMusicID_arr['music_disp'] = '';
  780. if($isValidMusicID_arr['music_thumb_ext']!='')
  781. {
  782. $isValidMusicID_arr['music_image_src'] = $isValidMusicID_arr['music_server_url'].$musics_folder.getMusicImageName($isValidMusicID_arr['music_id'], $isValidMusicID_arr['file_name']).$this->CFG['admin']['musics']['thumb_name'].'.'.$isValidMusicID_arr['music_thumb_ext'];
  783. $isValidMusicID_arr['music_disp'] = DISP_IMAGE($this->CFG['admin']['musics']['medium_width'], $this->CFG['admin']['musics']['medium_width'], $isValidMusicID_arr['thumb_width'], $isValidMusicID_arr['thumb_height']);
  784. }
  785. $isValidMusicID_arr['music_image_path'] = '';
  786. if(!$this->chkIsAdminSide())
  787. $isValidMusicID_arr['music_owner_url'] = getMemberProfileUrl($row['user_id'], $row['user_name']);
  788. else
  789. $isValidMusicID_arr['music_owner_url'] = $this->CFG['site']['url'].'admin/viewProfile.php?user_id='.$row['user_id'];
  790. $isValidMusicID_arr['music_title'] = wordWrap_mb_Manual($isValidMusicID_arr['music_title'], $this->CFG['admin']['musics']['viewpage_music_title_length'],strlen($isValidMusicID_arr['music_title']));
  791. $isValidMusicID_arr['viewmusic_url'] = getUrl('viewmusic', '?music_id='.$isValidMusicID_arr['music_id'].'&title='.$this->changeTitle($isValidMusicID_arr['music_title']), $isValidMusicID_arr['music_id'].'/'.$this->changeTitle($isValidMusicID_arr['music_title']).'/', 'root', 'music');
  792. $smartyObj->assign('musicInfo', $isValidMusicID_arr);
  793. return true;
  794. }
  795. else
  796. {
  797. return false;
  798. }
  799. }
  800.  
  801. public function chkIsAdminSide()
  802. {
  803. $url_arr = explode('/', $_SERVER['REQUEST_URI']);
  804. if(in_array('admin', $url_arr))
  805. return true;
  806. else
  807. return false;
  808. }
  809.  
  810. /**
  811. * musicHandler::deleteLyrics()
  812. *
  813. * @return
  814. */
  815. public function deleteLyrics()
  816. {
  817. $music_lyric_id = $this->fields_arr['music_lyric_id'];
  818.  
  819. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_lyric'].' '.
  820. 'WHERE music_lyric_id IN ('.$music_lyric_id.')' ;
  821.  
  822. $stmt = $this->dbObj->Prepare($sql);
  823. $rs = $this->dbObj->Execute($stmt);
  824. if (!$rs)
  825. trigger_db_error($this->dbObj);
  826.  
  827. return true;
  828. }
  829.  
  830. /**
  831. * musicHandler::changeStatusLyrics()
  832. *
  833. * @param mixed $status
  834. * @return
  835. */
  836. public function changeStatusLyrics($status)
  837. {
  838. $music_lyric_id = $this->fields_arr['music_lyric_id'];
  839. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_lyric'].' '.
  840. ' SET lyric_status = '.$this->dbObj->Param('lyric_status').' '.
  841. 'WHERE music_lyric_id IN ('.$music_lyric_id.')' ;
  842.  
  843. $stmt = $this->dbObj->Prepare($sql);
  844. $rs = $this->dbObj->Execute($stmt, array($status));
  845. if (!$rs)
  846. trigger_db_error($this->dbObj);
  847.  
  848. return true;
  849. }
  850.  
  851. /**
  852. * musicHandler::setAsBestLyrics()
  853. *
  854. * @param mixed $status
  855. * @return
  856. */
  857. public function setAsBestLyrics()
  858. {
  859. $music_lyric_id = $this->fields_arr['music_lyric_id'];
  860. //REMOVE ALL//
  861. $this->removeBestLyrics();
  862.  
  863. // SET AS BEST LYRICS //
  864. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_lyric'].' '.
  865. 'SET lyric_status = \'Yes\', best_lyric = '.$this->dbObj->Param('lyric_status').' '.
  866. 'WHERE music_id = '.$this->fields_arr['music_id'].' AND music_lyric_id IN ('.$music_lyric_id.')' ;
  867.  
  868. $stmt = $this->dbObj->Prepare($sql);
  869. $rs = $this->dbObj->Execute($stmt, array('Yes'));
  870. if (!$rs)
  871. trigger_db_error($this->dbObj);
  872.  
  873. return true;
  874. }
  875.  
  876. /**
  877. * musicHandler::removeBestLyrics()
  878. *
  879. * @param mixed $status
  880. * @return
  881. */
  882. public function removeBestLyrics()
  883. {
  884. //REMOVE ALL//
  885. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_lyric'].' '.
  886. 'SET best_lyric = '.$this->dbObj->Param('lyric_status').' '.
  887. 'WHERE music_id = '.$this->fields_arr['music_id'];
  888.  
  889. $stmt = $this->dbObj->Prepare($sql);
  890. $rs = $this->dbObj->Execute($stmt, array('No'));
  891. if (!$rs)
  892. trigger_db_error($this->dbObj);
  893.  
  894. }
  895.  
  896.  
  897. /**
  898. * musicHandler::displayCreatePlaylistInterface()
  899. *
  900. * @param string $page
  901. * @return
  902. */
  903. public function displayCreatePlaylistInterface($page='')
  904. {
  905. global $smartyObj;
  906. $sql = 'SELECT playlist_name, playlist_id FROM '.$this->CFG['db']['tbl']['music_playlist'].' '.
  907. 'WHERE playlist_status = \'Yes\' AND user_id = '.$this->dbObj->Param('user_id');
  908.  
  909. $stmt = $this->dbObj->Prepare($sql);
  910. $rs = $this->dbObj->Execute($stmt, array($this->CFG['user']['user_id']));
  911. if (!$rs)
  912. trigger_db_error($this->dbObj);
  913.  
  914. $playlistUrl = $this->CFG['site']['music_url'].'members/viewPlaylist.php?ajax_page=true&amp;page=playlist';
  915. $smartyObj->assign('playlistUrl', $playlistUrl);
  916. $playlistInfo = array();
  917. while($row = $rs->FetchRow())
  918. {
  919. $playlistInfo[$row['playlist_id']] = $row['playlist_name'];
  920. }
  921. $smartyObj->assign('playlistInfo', $playlistInfo);
  922. }
  923.  
  924. /**
  925. * musicHandler::displaySongList()
  926. * @param string $playlist_id
  927. * @param mixed $condition(IF $condition == true then we add additional query)
  928. * @param string $limit(Number of song we need to show)
  929. * @return
  930. */
  931. public function displaySongList($playlist_id='', $condition=false, $limit='')
  932. {
  933. global $smartyObj;
  934. $displaySongList_arr = array();
  935. $sql = 'SELECT m.music_id, m.music_title, ma.album_title '.
  936. 'FROM '.$this->CFG['db']['tbl']['music_in_playlist'].' as mpl JOIN '.
  937. $this->CFG['db']['tbl']['music'].' as m ON mpl.music_id=m.music_id'.', '.
  938. $this->CFG['db']['tbl']['users'] . ' as u, '.
  939. $this->CFG['db']['tbl']['music_album'].' AS ma '.
  940. 'WHERE ma.music_album_id = m.music_album_id AND '.
  941. 'u.user_id = m.user_id AND m.music_status = \'Ok\' '.
  942. 'AND u.usr_status = \'Ok\' AND mpl.playlist_id = '.$playlist_id;
  943.  
  944. if($condition)
  945. $sql .= ' AND (m.user_id = '.$this->CFG['user']['user_id'].
  946. ' OR m.music_access_type = \'Public\''.
  947. $this->getAdditionalQuery().') '.$this->getAdultQuery('m.', 'music');
  948.  
  949. $sql .= ' ORDER BY mpl.order_id ASC';
  950.  
  951. if($limit!='')
  952. $sql .= ' LIMIT 0, '.$limit;
  953.  
  954. $stmt = $this->dbObj->Prepare($sql);
  955. $rs = $this->dbObj->Execute($stmt);
  956. if (!$rs)
  957. trigger_error($this->dbObj->ErrorNo().' '.
  958. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  959.  
  960. $displaySongList_arr['record_count'] = 0;
  961. $displaySongList_arr['row'] = array();
  962. $inc = 1;
  963. while($songDetail = $rs->FetchRow())
  964. {
  965. $displaySongList_arr['record_count'] = 1;
  966. $displaySongList_arr['row'][$inc]['record'] = $songDetail;
  967. $displaySongList_arr['row'][$inc]['song_status'] = 1;
  968. if(!$condition and !$this->chkIsAdminSide())
  969. $displaySongList_arr['row'][$inc]['song_status'] = $this->chkPrivateSong($songDetail['music_id']);
  970. $displaySongList_arr['row'][$inc]['viewmusic_url'] = getUrl('viewmusic', '?music_id='.$songDetail['music_id'].'&title='.$this->changeTitle($songDetail['music_title']), $songDetail['music_id'].'/'.$this->changeTitle($songDetail['music_title']).'/', '', 'music');
  971. $displaySongList_arr['row'][$inc]['wordWrap_mb_ManualWithSpace_music_title'] = wordWrap_mb_ManualWithSpace($songDetail['music_title'], $this->CFG['admin']['musics']['member_music_title_length'], $this->CFG['admin']['musics']['member_music_title_total_length']);
  972. $displaySongList_arr['row'][$inc]['wordWrap_mb_ManualWithSpace_album_title'] = wordWrap_mb_ManualWithSpace($songDetail['album_title'], $this->CFG['admin']['musics']['member_musicalbum_title_length'], $this->CFG['admin']['musics']['member_musicalbum_title_total_length']);
  973. $inc++;
  974. }
  975. $smartyObj->assign('displaySongList_arr', $displaySongList_arr);
  976. $smartyObj->assign('lastDiv', $$inc=$inc-1);
  977. // return true;
  978. }
  979.  
  980.  
  981.  
  982. public function deleteMusics($music_id_arr = array(), $user_id)
  983. {
  984. $music_id = implode(',',$music_id_arr);
  985. $this->deleteMusicPlaylistTag($music_id);
  986. $this->deleteMusicTag($music_id);
  987. $this->deleteMusicArtist($music_id);
  988. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music'].' SET music_status=\'Deleted\'' . ' WHERE music_id IN(' . $music_id . ')' ;
  989. $stmt = $this->dbObj->Prepare($sql);
  990. $rs = $this->dbObj->Execute($stmt);
  991. if (!$rs)
  992. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  993. if($affected_rows = $this->dbObj->Affected_Rows())
  994. {
  995. $sql= 'SELECT count(music_encoded_status) AS count FROM '.$this->CFG['db']['tbl']['music'].
  996. ' WHERE music_id IN(' . $music_id . ') AND music_encoded_status=\'Yes\'';
  997. $stmt = $this->dbObj->Prepare($sql);
  998. $rs = $this->dbObj->Execute($stmt);
  999. if (!$rs)
  1000. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  1001. if($row = $rs->FetchRow())
  1002. {
  1003. $count = $row['count'];
  1004. }
  1005.  
  1006. $sql= 'UPDATE '.$this->CFG['db']['tbl']['users'].' SET'.
  1007. ' total_musics=total_musics-' . $count . ' WHERE user_id=' . $this->dbObj->Param('user_id').' AND total_musics>0';
  1008. $stmt = $this->dbObj->Prepare($sql);
  1009. $rs = $this->dbObj->Execute($stmt, array($user_id));
  1010. if (!$rs)
  1011. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  1012. // *********Delete records from Music related tables start*****
  1013. $tablename_arr = array('music_comments', 'music_favorite', 'music_viewed', 'music_rating', 'music_lyric');
  1014. for($i=0;$i<sizeof($tablename_arr);$i++)
  1015. {
  1016. $sql = 'DELETE FROM '.$this->CFG['db']['tbl'][$tablename_arr[$i]].
  1017. ' WHERE music_id IN(' . $music_id . ')';
  1018.  
  1019. $stmt = $this->dbObj->Prepare($sql);
  1020. $rs = $this->dbObj->Execute($stmt);
  1021. if (!$rs)
  1022. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  1023. }
  1024. // DELETE FLAGGED CONTENTS
  1025. $sql = 'DELETE FROM ' . $this->CFG['db']['tbl']['flagged_contents'] . ' WHERE content_type=\'Music\' AND content_id IN(' . $music_id . ')';
  1026. $stmt = $this->dbObj->Prepare($sql);
  1027. $rs = $this->dbObj->Execute($stmt);
  1028. if (!$rs)
  1029. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  1030. // **********End************
  1031. if ($this->chkIsFeaturedMusic($music_id_arr, $user_id)) {
  1032. $new_video= $this->getNewFeaturedVideo($user_id);
  1033. $this->setFeatureThisImage($new_video, $user_id);
  1034. }
  1035. }
  1036.  
  1037. return true;
  1038.  
  1039. }
  1040.  
  1041. /**
  1042. * musicHandler::deletePlaylistComments()
  1043. *
  1044. * @return
  1045. */
  1046. public function deletePlaylistComments($ids)
  1047. {
  1048. $comment_id = explode(',', $ids);
  1049. for($inc=0;$inc<count($comment_id);$inc++)
  1050. {
  1051. //FETCH RECORD FOR comment_status //
  1052. $sql = 'SELECT comment_status, playlist_id FROM '.$this->CFG['db']['tbl']['music_playlist_comments'].' WHERE'.
  1053. ' playlist_comment_id ='.$comment_id[$inc];
  1054.  
  1055. $stmt = $this->dbObj->Prepare($sql);
  1056. $rs = $this->dbObj->Execute($stmt);
  1057. if (!$rs)
  1058. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1059.  
  1060. $commentDetail = $rs->FetchRow();
  1061.  
  1062. //DELETE COMMENTS//
  1063. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_playlist_comments'].' WHERE'.
  1064. ' playlist_comment_id ='.$comment_id[$inc];
  1065.  
  1066. $stmt = $this->dbObj->Prepare($sql);
  1067. $rs = $this->dbObj->Execute($stmt);
  1068. if (!$rs)
  1069. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1070.  
  1071. //CONTROL: IF comment_status = yes THEN WE REDUCES THE total_comments//
  1072. if($commentDetail['comment_status'] == 'Yes')
  1073. {
  1074. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_playlist'].' SET total_comments=total_comments- 1'.
  1075. ' WHERE playlist_id='.$this->dbObj->Param('playlist_id');
  1076.  
  1077. $stmt = $this->dbObj->Prepare($sql);
  1078. $rs = $this->dbObj->Execute($stmt, array($commentDetail['playlist_id']));
  1079. if (!$rs)
  1080. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1081. }
  1082. }
  1083. }
  1084.  
  1085. /**
  1086. * musicHandler::deleteMusicComments()
  1087. *
  1088. * @return
  1089. */
  1090. public function deleteMusicComments($ids)
  1091. {
  1092. $comment_id = explode(',', $ids);
  1093. for($inc=0;$inc<count($comment_id);$inc++)
  1094. {
  1095. //FETCH RECORD FOR comment_status //
  1096. $sql = 'SELECT comment_status, music_id FROM '.$this->CFG['db']['tbl']['music_comments'].' WHERE'.
  1097. ' music_comment_id ='.$comment_id[$inc];
  1098.  
  1099. $stmt = $this->dbObj->Prepare($sql);
  1100. $rs = $this->dbObj->Execute($stmt);
  1101. if (!$rs)
  1102. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1103.  
  1104. $commentDetail = $rs->FetchRow();
  1105.  
  1106. //DELETE COMMENTS//
  1107. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_comments'].' WHERE'.
  1108. ' music_comment_id ='.$comment_id[$inc];
  1109.  
  1110. $stmt = $this->dbObj->Prepare($sql);
  1111. $rs = $this->dbObj->Execute($stmt);
  1112. if (!$rs)
  1113. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1114.  
  1115. //CONTROL: IF comment_status = yes THEN WE REDUCES THE total_comments//
  1116. if($commentDetail['comment_status'] == 'Yes')
  1117. {
  1118. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music'].' SET total_comments=total_comments-1'.
  1119. ' WHERE music_id='.$this->dbObj->Param('music_id');
  1120.  
  1121. $stmt = $this->dbObj->Prepare($sql);
  1122. $rs = $this->dbObj->Execute($stmt, array($commentDetail['music_id']));
  1123. if (!$rs)
  1124. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1125. }
  1126. }
  1127. }
  1128.  
  1129.  
  1130. public function chkIsFeaturedMusic($music_id_arr = array(), $user_id)
  1131. {
  1132. $music_id = implode(',', $music_id_arr);
  1133. $sql = 'SELECT user_id FROM ' . $this->CFG['db']['tbl']['users'] . ' WHERE user_id=' . $this->dbObj->Param('user_id') . ' AND' . ' icon_type=\'Music\' AND icon_id IN(' . $music_id . ') LIMIT 0,1';
  1134. $stmt = $this->dbObj->Prepare($sql);
  1135. $rs = $this->dbObj->Execute($stmt, array($user_id));
  1136. if (!$rs)
  1137. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  1138. if ($row = $rs->FetchRow())
  1139. return true;
  1140. return false;
  1141. }
  1142. /**
  1143. * musicHandler::musicCount()
  1144. *
  1145. * @param integer $category
  1146. * @return $total
  1147. */
  1148. public function musicCount($category=0)
  1149. {
  1150. if($category)
  1151. $condition = 'AND music_category_id = '.$category;
  1152.  
  1153. $sql = 'SELECT count(music_id) as total FROM '.$this->CFG['db']['tbl']['music'].
  1154. ' WHERE music_status = \'Ok\' '.$condition;
  1155.  
  1156. $stmt = $this->dbObj->Prepare($sql);
  1157. $rs = $this->dbObj->Execute($stmt);
  1158. if (!$rs)
  1159. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1160.  
  1161. $row = $rs->FetchRow();
  1162. return $row['total'];
  1163. }
  1164.  
  1165. /**
  1166. * musicHandler::populateSubGenres()
  1167. * //WE USE THIS FUNCTION INDEX, MUSIC LIST, PLAYLIST pages
  1168. * param $category_id
  1169. * @return
  1170. */
  1171. public function populateSubGenres($category_id)
  1172. {
  1173. $populateSubGenres = array();
  1174. $populateSubGenres['record_count'] = false;
  1175. //SUBGENRES LIST priority vise or music_category_name//
  1176. if($this->CFG['admin']['musics']['music_category_list_priority'])
  1177. $short_by = 'priority';
  1178. else
  1179. $short_by = 'music_category_name';
  1180.  
  1181. $sql = 'SELECT music_category_id, music_category_name FROM '.$this->CFG['db']['tbl']['music_category'].' '.
  1182. 'WHERE parent_category_id = \''.$category_id.'\' AND music_category_status = \'Yes\' ORDER BY '.$short_by.' ASC LIMIT 0, '.$this->CFG['admin']['musics']['sidebar_genres_num_record'];
  1183.  
  1184. $stmt = $this->dbObj->Prepare($sql);
  1185. $rs = $this->dbObj->Execute($stmt);
  1186. if (!$rs)
  1187. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1188.  
  1189. $populateSubGenres['row'] = array();
  1190. $inc = 0;
  1191. While($genresDetail = $rs->FetchRow())
  1192. {
  1193. $populateSubGenres['record_count'] = true;
  1194. $populateSubGenres['row'][$inc]['wordWrap_mb_ManualWithSpace_music_category_name'] = wordWrap_mb_ManualWithSpace($genresDetail['music_category_name'], $this->CFG['admin']['musics']['sidebar_genres_name_length'], $this->CFG['admin']['musics']['sidebar_genres_name_total_length']);
  1195. $populateSubGenres['row'][$inc]['record'] = $genresDetail;
  1196. $populateSubGenres['row'][$inc]['musicCount'] = $this->musicCount($genresDetail['music_category_id']);
  1197. $populateSubGenres['row'][$inc]['musiclist_url'] = getUrl('musiclist', '?pg=musicnew&cid='.$category_id.'&sid='.$genresDetail['music_category_id'], 'musicnew/?cid='.$category_id.'&sid='.$genresDetail['music_category_id'], '', 'music');
  1198. $inc++;
  1199. }
  1200. return $populateSubGenres;
  1201. }
  1202.  
  1203. /**
  1204. * musicHandler::populateGenres()
  1205. * //WE USE THIS FUNCTION INDEX, MUSIC LIST, PLAYLIST pages
  1206. * @return
  1207. */
  1208. public function populateGenres()
  1209. {
  1210. global $smartyObj;
  1211. $populateGenres_arr = array();
  1212. $populateGenres_arr['record_count'] = false;
  1213.  
  1214. $allowed_pages_array = array('listenMusic.php', 'viewPlaylist.php', 'viewAlbum.php');
  1215. if(displayBlock($allowed_pages_array))
  1216. return;
  1217.  
  1218. //GENRES LIST priority vise or music_category_name//
  1219. if($this->CFG['admin']['musics']['music_category_list_priority'])
  1220. $short_by = 'priority';
  1221. else
  1222. $short_by = 'music_category_name';
  1223.  
  1224. //$addtional_condition = 'music_category_type!=\'Porn\' AND ';
  1225. $addtional_condition = '';
  1226.  
  1227. $sql = 'SELECT music_category_id, music_category_name FROM '.$this->CFG['db']['tbl']['music_category'].' '.
  1228. 'WHERE '.$addtional_condition.' parent_category_id = \'0\' AND music_category_status = \'Yes\' ORDER BY '.$short_by.' ASC LIMIT 0, '.$this->CFG['admin']['musics']['sidebar_genres_num_record'];
  1229.  
  1230. $stmt = $this->dbObj->Prepare($sql);
  1231. $rs = $this->dbObj->Execute($stmt);
  1232. if (!$rs)
  1233. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1234.  
  1235. $populateGenres_arr['row'] = array();
  1236. $inc = 0;
  1237. While($genresDetail = $rs->FetchRow())
  1238. {
  1239. $populateGenres_arr['record_count'] = true;
  1240. $populateGenres_arr['row'][$inc]['wordWrap_mb_ManualWithSpace_music_category_name'] = wordWrap_mb_ManualWithSpace($genresDetail['music_category_name'], $this->CFG['admin']['musics']['sidebar_genres_name_length'], $this->CFG['admin']['musics']['sidebar_genres_name_total_length']);
  1241. $populateGenres_arr['row'][$inc]['record'] = $genresDetail;
  1242. $populateGenres_arr['row'][$inc]['musicCount'] = $this->musicCount($genresDetail['music_category_id']);
  1243. $populateGenres_arr['row'][$inc]['populateSubGenres'] = $this->populateSubGenres($genresDetail['music_category_id']);
  1244. $populateGenres_arr['row'][$inc]['musiclist_url'] = getUrl('musiclist', '?pg=musicnew&cid='.$genresDetail['music_category_id'], 'musicnew/?cid='.$genresDetail['music_category_id'], '', 'music');
  1245. $inc++;
  1246. }
  1247. $smartyObj->assign('moregenres_url', getUrl('musiccategory', '', '', '', 'music'));
  1248. $smartyObj->assign('populateGenres_arr', $populateGenres_arr);
  1249. setTemplateFolder('general/', 'music');
  1250. $smartyObj->display('populateGenresBlock.tpl');
  1251. }
  1252.  
  1253. public function setFontSizeInsteadOfSearchCountSidebar($tag_array=array())
  1254. {
  1255. $formattedArray = $tag_array;
  1256. $max_qty = max(array_values($formattedArray));
  1257. $min_qty = min(array_values($formattedArray));
  1258. $max_font_size = 28;
  1259. $min_font_size = 12;
  1260. $spread = $max_qty - $min_qty;
  1261. if (0 == $spread) { // Divide by zero
  1262. $spread = 1;
  1263. }
  1264. $step = ($max_font_size - $min_font_size)/($spread);
  1265. foreach ($tag_array as $catname => $count)
  1266. {
  1267. $size = $min_font_size + ($count - $min_qty) * $step;
  1268. $formattedArray[$catname] = ceil($size);
  1269. }
  1270. return $formattedArray;
  1271. }
  1272.  
  1273. /**
  1274. * Tag::populateTags()
  1275. *
  1276. * @return
  1277. **/
  1278. public function populateSidebarClouds($module, $tags_table)
  1279. {
  1280. global $smartyObj;
  1281. $return = array();
  1282. $return['resultFound']=false;
  1283. if($module=='artist')
  1284. {
  1285. $allowed_pages_array = array('listenMusic.php', 'viewPlaylist.php', 'viewAlbum.php', 'myPlaylist.php', 'musicUploadPopUp.php');
  1286. if(displayBlock($allowed_pages_array))
  1287. return;
  1288. if($this->CFG['admin']['tagcloud_based_search_count'])
  1289. {
  1290. $sql = 'SELECT music_artist_id, artist_name as tag_name, search_count FROM '.$this->CFG['db']['tbl'][$tags_table].
  1291. ' WHERE search_count>0 ORDER BY search_count DESC, result_count DESC, tag_name ASC'.
  1292. ' LIMIT 0, '.$this->CFG['admin']['musics']['sidebar_clouds_num_record'];
  1293. }
  1294. else
  1295. {
  1296. $sql = 'SELECT music_artist_id, artist_name as tag_name, result_count AS search_count FROM'.
  1297. ' '.$this->CFG['db']['tbl'][$tags_table].
  1298. ' WHERE result_count>0 ORDER BY result_count DESC, tag_name ASC'.
  1299. ' LIMIT 0, '.$this->CFG['admin']['musics']['sidebar_clouds_num_record'];
  1300. }
  1301.  
  1302. $moreclouds_url = getUrl('tagsartist', '', '', '', 'music');
  1303.  
  1304. $stmt = $this->dbObj->Prepare($sql);
  1305. $rs = $this->dbObj->Execute($stmt);
  1306. if (!$rs)
  1307. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1308.  
  1309. if ($rs->PO_RecordCount()>0)
  1310. {
  1311. $return['resultFound']=true;
  1312. $classes = array('clsAudioTagStyleGrey', 'clsAudioTagStyleGreen');
  1313. $tagClassArray = array();
  1314. while($row = $rs->FetchRow())
  1315. {
  1316. $tagArray[$row['tag_name']] = $row['search_count'];
  1317. $tagUrlArray[$row['tag_name']] = $row['music_artist_id'];
  1318. $class = $classes[rand(0, count($classes))%count($classes)];
  1319. $tagClassArray[$row['tag_name']] = $class;
  1320. }
  1321. $tagArray = $this->setFontSizeInsteadOfSearchCountSidebar($tagArray);
  1322. ksort($tagArray);
  1323. $inc=0;
  1324. foreach($tagArray as $tag=>$fontSize)
  1325. {
  1326. $class = $tagClassArray[$tag];
  1327. $fontSizeClass= 'style="font-size:'.$fontSize.'px"';
  1328. $return['item'][$inc]['class']=$class;
  1329. $return['item'][$inc]['fontSizeClass']=$fontSizeClass;
  1330. $return['item'][$inc]['wordWrap_mb_ManualWithSpace_tag']= wordWrap_mb_ManualWithSpace($tag, $this->CFG['admin']['musics']['sidebar_clouds_name_length'], $this->CFG['admin']['musics']['sidebar_clouds_name_total_length']);
  1331. $return['item'][$inc]['name']=$tag;
  1332. $return['item'][$inc]['url']= getUrl('musiclist', '?pg=musicnew&artist_id='.$tagUrlArray[$tag], 'musicnew/?artist_id='.$tagUrlArray[$tag], '', 'music');
  1333. $inc++;
  1334. }
  1335. }
  1336. }
  1337. elseif($module=='playlist')
  1338. {
  1339. $allowed_pages_array = array('listenMusic.php', 'viewPlaylist.php', 'viewAlbum.php', 'musicList.php', 'musicUploadPopUp.php', 'myDashboard.php');
  1340. if(displayBlock($allowed_pages_array))
  1341. return;
  1342.  
  1343. if($this->CFG['admin']['tagcloud_based_search_count'])
  1344. {
  1345. $sql = 'SELECT tag_name, search_count FROM '.$this->CFG['db']['tbl'][$tags_table].
  1346. ' WHERE search_count>0 ORDER BY search_count DESC, result_count DESC, tag_name ASC'.
  1347. ' LIMIT 0, '.$this->CFG['admin']['musics']['sidebar_clouds_num_record'];
  1348. }
  1349. else
  1350. {
  1351. $sql = 'SELECT tag_name, result_count AS search_count FROM'.
  1352. ' '.$this->CFG['db']['tbl'][$tags_table].
  1353. ' WHERE result_count>0 ORDER BY result_count DESC, tag_name ASC'.
  1354. ' LIMIT 0, '.$this->CFG['admin']['musics']['sidebar_clouds_num_record'];
  1355. }
  1356.  
  1357. $searchUrl = getUrl('musicplaylist', '?pg=playlistnew&tags=%s', 'playlistnew/?tags=%s', '', 'music');
  1358. $moreclouds_url = getUrl('tagsplaylist', '', '', '', 'music');
  1359.  
  1360. $stmt = $this->dbObj->Prepare($sql);
  1361. $rs = $this->dbObj->Execute($stmt);
  1362. if (!$rs)
  1363. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1364.  
  1365. if ($rs->PO_RecordCount()>0)
  1366. {
  1367. $return['resultFound']=true;
  1368. $classes = array('clsAudioTagStyleGrey', 'clsAudioTagStyleGreen');
  1369. $tagClassArray = array();
  1370. while($row = $rs->FetchRow())
  1371. {
  1372. $tagArray[$row['tag_name']] = $row['search_count'];
  1373. $class = $classes[rand(0, count($classes))%count($classes)];
  1374. $tagClassArray[$row['tag_name']] = $class;
  1375. }
  1376. $tagArray = $this->setFontSizeInsteadOfSearchCountSidebar($tagArray);
  1377. ksort($tagArray);
  1378. $inc=0;
  1379. foreach($tagArray as $tag=>$fontSize)
  1380. {
  1381. $url = sprintf($searchUrl, $tag);
  1382. $class = $tagClassArray[$tag];
  1383. $fontSizeClass= 'style="font-size:'.$fontSize.'px"';
  1384. $return['item'][$inc]['url']=$url;
  1385. $return['item'][$inc]['class']=$class;
  1386. $return['item'][$inc]['fontSizeClass']=$fontSizeClass;
  1387. $return['item'][$inc]['wordWrap_mb_ManualWithSpace_tag']= wordWrap_mb_ManualWithSpace($tag, $this->CFG['admin']['musics']['sidebar_clouds_name_length'], $this->CFG['admin']['musics']['sidebar_clouds_name_total_length']);
  1388. $return['item'][$inc]['name']=$tag;
  1389. $inc++;
  1390. }
  1391. }
  1392. }
  1393. else
  1394. {
  1395. $allowed_pages_array = array('listenMusic.php', 'viewPlaylist.php', 'viewAlbum.php', 'musicUploadPopUp.php');
  1396. if(displayBlock($allowed_pages_array))
  1397. return;
  1398.  
  1399. if($this->CFG['admin']['tagcloud_based_search_count'])
  1400. {
  1401. $sql = 'SELECT tag_name, search_count FROM '.$this->CFG['db']['tbl'][$tags_table].
  1402. ' WHERE search_count>0 ORDER BY search_count DESC, result_count DESC, tag_name ASC'.
  1403. ' LIMIT 0, '.$this->CFG['admin']['musics']['sidebar_clouds_num_record'];
  1404. }
  1405. else
  1406. {
  1407. $sql = 'SELECT tag_name, result_count AS search_count FROM'.
  1408. ' '.$this->CFG['db']['tbl'][$tags_table].
  1409. ' WHERE result_count>0 ORDER BY result_count DESC, tag_name ASC'.
  1410. ' LIMIT 0, '.$this->CFG['admin']['musics']['sidebar_clouds_num_record'];
  1411. }
  1412.  
  1413. $searchUrl = getUrl('musiclist', '?pg=musicnew&tags=%s', 'musicnew/?tags=%s', '', 'music');
  1414. $moreclouds_url = getUrl('tags', '?pg=music', 'music/', '', 'music');
  1415.  
  1416. $stmt = $this->dbObj->Prepare($sql);
  1417. $rs = $this->dbObj->Execute($stmt);
  1418. if (!$rs)
  1419. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1420.  
  1421. if ($rs->PO_RecordCount()>0)
  1422. {
  1423. $return['resultFound']=true;
  1424. $classes = array('clsAudioTagStyleGrey', 'clsAudioTagStyleGreen');
  1425. $tagClassArray = array();
  1426. while($row = $rs->FetchRow())
  1427. {
  1428. $tagArray[$row['tag_name']] = $row['search_count'];
  1429. $class = $classes[rand(0, count($classes))%count($classes)];
  1430. $tagClassArray[$row['tag_name']] = $class;
  1431. }
  1432. $tagArray = $this->setFontSizeInsteadOfSearchCountSidebar($tagArray);
  1433. ksort($tagArray);
  1434. $inc=0;
  1435. foreach($tagArray as $tag=>$fontSize)
  1436. {
  1437. $url = sprintf($searchUrl, $tag);
  1438. $class = $tagClassArray[$tag];
  1439. $fontSizeClass= 'style="font-size:'.$fontSize.'px"';
  1440. $return['item'][$inc]['url']=$url;
  1441. $return['item'][$inc]['class']=$class;
  1442. $return['item'][$inc]['fontSizeClass']=$fontSizeClass;
  1443. $return['item'][$inc]['wordWrap_mb_ManualWithSpace_tag']= wordWrap_mb_ManualWithSpace($tag, $this->CFG['admin']['musics']['sidebar_clouds_name_length'], $this->CFG['admin']['musics']['sidebar_clouds_name_total_length']);
  1444. $return['item'][$inc]['name']=$tag;
  1445. $inc++;
  1446. }
  1447. }
  1448. }
  1449. $smartyObj->assign('moreclouds_url', $moreclouds_url);
  1450. $smartyObj->assign('opt', $module);
  1451. $smartyObj->assign('populateCloudsBlock', $return);
  1452. setTemplateFolder('general/', 'music');
  1453. $smartyObj->display('populateCloudsBlock.tpl');
  1454. }
  1455.  
  1456. /**
  1457. * musicHandler::getArtistImageName()
  1458. *
  1459. * @param integer $music_artist_id
  1460. * @return
  1461. */
  1462. public function getArtistMiniImageName($music_artist_id = 0)
  1463. {
  1464. $sql = 'SELECT mai.mini_height, mai.mini_width, mai.image_ext, mai.music_artist_image FROM '.$this->CFG['db']['tbl']['music_artist_image'].' AS mai
  1465. WHERE mai.main_img =\'1\'AND status = \'Yes\' AND mai.music_artist_id = '.$this->dbObj->Param('music_artist_id');
  1466.  
  1467. $stmt = $this->dbObj->Prepare($sql);
  1468. $rs = $this->dbObj->Execute($stmt, array($music_artist_id));
  1469. if (!$rs)
  1470. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1471.  
  1472. $artist_image_result = $rs->FetchRow();
  1473.  
  1474. return $artist_image_result;
  1475. }
  1476.  
  1477. /**
  1478. * musicHandler::populatePopularArtist()
  1479. *
  1480. * @return
  1481. */
  1482. public function populatePopularArtist()
  1483. {
  1484. global $smartyObj;
  1485. $populatePopularArtist_arr = array();
  1486. $populatePopularArtist_arr['record_count'] = false;
  1487. $populatePopularArtist_arr['row'] = array();
  1488. if(isMember())
  1489. {
  1490. $limit=$this->CFG['admin']['musics']['sidebar_popularartist_num_record'];
  1491. }
  1492. else
  1493. {
  1494. $limit=$this->CFG['admin']['musics']['sidebar_non_member_popularartist_num_record'];
  1495. }
  1496. //HERE WE REMOVE "AND music_access_type = \'Public\' for artist list" for private song total plays//
  1497. $sql = 'SELECT ma.artist_name, ma.music_artist_id, count( m.music_id ) AS total_songs, sum( total_plays ) AS sum_plays '.
  1498. 'FROM '.$this->CFG['db']['tbl']['music'].' AS m JOIN '.$this->CFG['db']['tbl']['music_artist'].' AS ma ON FIND_IN_SET( ma.music_artist_id, m.music_artist ) '.
  1499. ', '.$this->CFG['db']['tbl']['users'].' AS u '.' WHERE u.user_id = m.user_id AND ma.music_artist_id != 1 '.
  1500. 'AND u.usr_status = \'Ok\' AND m.music_status = \'Ok\' GROUP BY ma.music_artist_id ORDER BY sum_plays DESC LIMIT 0, '.$limit;
  1501.  
  1502. $stmt = $this->dbObj->Prepare($sql);
  1503. $rs = $this->dbObj->Execute($stmt);
  1504. if (!$rs)
  1505. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1506.  
  1507. $inc = 0;
  1508. $artist_image_path = $this->CFG['site']['url'].$this->CFG['media']['folder'].'/'.$this->CFG['admin']['musics']['music_folder'].'/'.$this->CFG['admin']['musics']['artist_image_folder'].'/';
  1509. while($popular_artist_detail = $rs->FetchRow())
  1510. {
  1511. $populatePopularArtist_arr['record_count'] = true;
  1512. $populatePopularArtist_arr['row'][$inc]['record'] = $popular_artist_detail;
  1513. $populatePopularArtist_arr['row'][$inc]['wordWrap_mb_ManualWithSpace_artist_name'] = wordWrap_mb_ManualWithSpace($popular_artist_detail['artist_name'], $this->CFG['admin']['musics']['sidebar_artist_name_length'], $this->CFG['admin']['musics']['sidebar_artist_name_total_length']);
  1514.  
  1515. $populatePopularArtist_arr['row'][$inc]['viewartist_url'] = getUrl('musiclist', '?pg=musicnew&artist_id='.$popular_artist_detail['music_artist_id'], 'musicnew/?artist_id='.$popular_artist_detail['music_artist_id'], '', 'music');
  1516.  
  1517. $music_artist_image = $this->getArtistMiniImageName($popular_artist_detail['music_artist_id']);
  1518. if($music_artist_image['music_artist_image'] != '')
  1519. {
  1520. $populatePopularArtist_arr['row'][$inc]['music_path'] = $artist_image_path.$music_artist_image['music_artist_image'].$this->CFG['admin']['musics']['artist_mini_name'].'.'.$music_artist_image['image_ext'];
  1521. $populatePopularArtist_arr['row'][$inc]['disp_image'] = DISP_IMAGE($this->CFG['admin']['musics']['artist_mini_width'], $this->CFG['admin']['musics']['artist_mini_height'], $music_artist_image['mini_width'], $music_artist_image['mini_height']);
  1522. }
  1523. else
  1524. {
  1525. $populatePopularArtist_arr['row'][$inc]['music_path'] = '';
  1526. $populatePopularArtist_arr['row'][$inc]['disp_image'] = '';
  1527. }
  1528. $inc++;
  1529. }
  1530. $smartyObj->assign('moreartist_url', getUrl('artistlist', '', '', '', 'music'));
  1531. $smartyObj->assign('populatePopularArtist_arr', $populatePopularArtist_arr);
  1532. setTemplateFolder('general/', 'music');
  1533. $smartyObj->display('populatePopularArtist.tpl');
  1534. }
  1535. /**
  1536. * musicHandler::populateAudioTracker()
  1537. *
  1538. * @return
  1539. */
  1540. public function populateAudioTracker($return_only_music_id=false)
  1541. {
  1542. if(isMember())
  1543. {
  1544. global $smartyObj;
  1545. $populateAudioTracker_arr = array();
  1546. $populateAudioTracker_arr['record_count'] = false;
  1547. $populateAudioTracker_arr['row'] = array();
  1548. $sql = 'SELECT m.music_id, m.music_title, ma.album_title, TIMEDIFF(NOW(), ml.last_listened) AS last_viewed, ma.music_album_id
  1549. FROM '.$this->CFG['db']['tbl']['music'].' AS m, '.$this->CFG['db']['tbl']['music_album'].' AS ma, '.
  1550. $this->CFG['db']['tbl']['music_listened'].' AS ml, '.$this->CFG['db']['tbl']['users'].' AS u '.
  1551. 'WHERE u.user_id = ml.music_owner_id AND u.usr_status = \'OK\' AND m.music_status = \'Ok\' AND
  1552. m.music_album_id = ma.music_album_id AND m.music_id = ml.music_id AND ml.user_id = '.
  1553. $this->dbObj->Param('user_id').$this->getAdultQuery('m.', 'music').' AND (ml.music_owner_id = '.$this->CFG['user']['user_id'].'
  1554. OR '.'m.music_access_type = \'Public\''.$this->getAdditionalQuery().')ORDER BY last_viewed DESC LIMIT 0 , '.
  1555. $this->CFG['admin']['musics']['sidebar_audiotracker_num_record'];
  1556.  
  1557.  
  1558. $stmt = $this->dbObj->Prepare($sql);
  1559. $rs = $this->dbObj->Execute($stmt, array($this->CFG['user']['user_id']));
  1560. if (!$rs)
  1561. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1562.  
  1563. $inc = 0;
  1564. while($audio_tracker_detail = $rs->FetchRow())
  1565. {
  1566. if($return_only_music_id)
  1567. {
  1568. $this->player_music_id[$this->player_music_id_key] = $audio_tracker_detail['music_id'];
  1569. $_SESSION['index_player_music_id'][$this->player_music_id_key] = $audio_tracker_detail['music_id'];
  1570. $this->player_music_id_key++;
  1571. }
  1572. else
  1573. {
  1574. $populateAudioTracker_arr['record_count'] = true;
  1575. $populateAudioTracker_arr['row'][$inc]['record'] = $audio_tracker_detail;
  1576. $populateAudioTracker_arr['row'][$inc]['getTimeDiffernceFormat_last_viewed'] = $this->getTimeDiffernceFormat($audio_tracker_detail['last_viewed']);
  1577. $populateAudioTracker_arr['row'][$inc]['wordWrap_mb_ManualWithSpace_music_title'] = wordWrap_mb_ManualWithSpace($audio_tracker_detail['music_title'], $this->CFG['admin']['musics']['sidebar_audiotracker_title_length'], $this->CFG['admin']['musics']['sidebar_audiotracker_title_total_length']);
  1578. $populateAudioTracker_arr['row'][$inc]['wordWrap_mb_ManualWithSpace_album_title'] = wordWrap_mb_ManualWithSpace($audio_tracker_detail['album_title'], $this->CFG['admin']['musics']['sidebar_albumlist_title_length'], $this->CFG['admin']['musics']['sidebar_albumlist_title_total_length']);
  1579. $populateAudioTracker_arr['row'][$inc]['viewmusic_url'] = getUrl('viewmusic', '?music_id='.$audio_tracker_detail['music_id'].'&title='.$this->changeTitle($audio_tracker_detail['music_title']), $audio_tracker_detail['music_id'].'/'.$this->changeTitle($audio_tracker_detail['music_title']).'/', '', 'music');
  1580. $populateAudioTracker_arr['row'][$inc]['viewalbum_url'] = getUrl('viewalbum', '?album_id='.$audio_tracker_detail['music_album_id'].'&title='.$this->changeTitle($audio_tracker_detail['album_title']), $audio_tracker_detail['music_album_id'].'/'.$this->changeTitle($audio_tracker_detail['album_title']).'/', '', 'music');
  1581. $populateAudioTracker_arr['row'][$inc]['player_music_id_key'] = $this->player_music_id_key;
  1582. }
  1583. $inc++;
  1584. }
  1585. if(!$return_only_music_id)
  1586. {
  1587. $smartyObj->assign('audiotracker_url', getUrl('mymusictracker', '?pg=musictracker', 'musictracker/', '', 'music'));
  1588. $smartyObj->assign('populateAudioTracker_arr', $populateAudioTracker_arr);
  1589. setTemplateFolder('general/', 'music');
  1590. $smartyObj->display('populateAudioTracker.tpl');
  1591. }
  1592. }
  1593. }
  1594.  
  1595. /**
  1596. * musicHandler::populateMemberDetail()
  1597. * // IF THE FUNCTION RUN WE NEED TO INCLUDE class_RayzzHandler.lib.php FILE//
  1598. * @return
  1599. */
  1600. public function populateMemberDetail($side_bar_option)
  1601. {
  1602. global $smartyObj;
  1603. if($side_bar_option == 'music')
  1604. $allowed_pages_array = array('listenMusic.php', 'viewPlaylist.php', 'viewAlbum.php');
  1605. elseif($side_bar_option == 'playlist')
  1606. $allowed_pages_array = array('listenMusic.php', 'viewPlaylist.php', 'viewAlbum.php', 'musicUploadPopUp.php');
  1607. if(displayBlock($allowed_pages_array))
  1608. return;
  1609.  
  1610. $this->_currentPage = strtolower($this->CFG['html']['current_script_name']);
  1611. $this->_navigationArr['left_'.$this->_currentPage] = $this->_clsActiveLink;
  1612. $pg = (isset($_REQUEST['pg']))?$_REQUEST['pg']:'';
  1613. $block = (isset($_REQUEST['block']))?$_REQUEST['block']:'';
  1614. if($block != '')
  1615. {
  1616. $page = $this->_currentPage.'_'.strtolower($block);
  1617. $this->_navigationArr['left_'.$page] = $this->_clsActiveLink;
  1618. }
  1619. $flag = false;
  1620. if($pg != '')
  1621. {
  1622. $flag = true;
  1623. $this->_navigationArr['left_'.$this->_currentPage] = $this->_clsInActiveLink;
  1624. $page = $this->_currentPage.'_'.strtolower($pg);
  1625. $this->_navigationArr['left_'.$page] = $this->_clsActiveLink;
  1626. }
  1627.  
  1628. $populateMemberDetail_arr = array();
  1629. $rayzz = new RayzzHandler($this->dbObj, $this->CFG);
  1630. $icondetail = $rayzz->getUserDetails($this->CFG['user']['user_id'], array(), true);
  1631. $populateMemberDetail_arr['s_attribute'] = isset($icondetail['icon']['s_attribute'])?$icondetail['icon']['s_attribute']:'';
  1632. $populateMemberDetail_arr['memberProfileUrl'] = getMemberProfileUrl($this->CFG['user']['user_id'], $this->CFG['user']['user_name']);
  1633. $populateMemberDetail_arr['name'] = $this->CFG['user']['user_name'];
  1634. $populateMemberDetail_arr['icon'] = $icondetail['icon'];
  1635. //TOTAL MUSIC //
  1636. $sql = 'SELECT COUNT( m.music_id ) AS total_music '.
  1637. 'FROM '.$this->CFG['db']['tbl']['music'].' AS m '.
  1638. 'WHERE music_status=\'Ok\' AND user_id = '.$this->dbObj->Param('user_id');
  1639.  
  1640. $stmt = $this->dbObj->Prepare($sql);
  1641. $rs = $this->dbObj->Execute($stmt, array($this->CFG['user']['user_id']));
  1642. if (!$rs)
  1643. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1644.  
  1645. $result_set = $rs->FetchRow();
  1646. $populateMemberDetail_arr['total_muisic'] = $result_set['total_music'];
  1647. $smartyObj->assign('populateMemberDetail_arr', $populateMemberDetail_arr);
  1648. $smartyObj->assign('opt', $side_bar_option);
  1649. $smartyObj->assign('flag', $flag);
  1650. setTemplateFolder('general/', 'music');
  1651. $smartyObj->display('populateMemberBlock.tpl');
  1652. }
  1653.  
  1654. /**
  1655. * musicHandler::populateCurrentlyPlayingSongsDetail()
  1656. *
  1657. * @return
  1658. */
  1659. public function populateCurrentlyPlayingSongsDetail($recent_view_check=false)
  1660. {
  1661. $populateCurrentlyPlayingSongsDetail_arr =array();
  1662. $add_field = '';
  1663. $add_con = ' AND ma.music_album_id=m.music_album_id AND u.user_id = m.user_id AND u.usr_status=\'Ok\' ';
  1664. $add_order = ' ORDER BY m.last_view_date DESC ';
  1665. $sql_condition = ' m.music_status=\'Ok\''.
  1666. ' AND (m.user_id = '.$this->CFG['user']['user_id'].
  1667. ' OR m.music_access_type = \'Public\''.$this->getAdditionalQuery('m.', 'music').')'.$add_con.$this->getAdultQuery('m.', 'music');
  1668.  
  1669. $minutes_seconds=($this->CFG['admin']['musics']['recent_view_musics_seconds'])?$this->CFG['admin']['musics']['recent_view_musics_seconds']:60;
  1670.  
  1671. if($recent_view_check)
  1672. $sql_condition .= ' AND last_view_date >= DATE_SUB(now(), INTERVAL '.$minutes_seconds.' SECOND) ';
  1673.  
  1674. $populateCurrentlyPlayingSongsDetail_arr['row'] = array();
  1675.  
  1676. $sql = 'SELECT 1 FROM '.$this->CFG['db']['tbl']['music'].
  1677. ' AS m JOIN '.$this->CFG['db']['tbl']['music_files_settings'].' AS mfs '.
  1678. 'ON mfs.music_file_id = m.thumb_name_id, '.
  1679. $this->CFG['db']['tbl']['music_album'].' AS ma, '.
  1680. $this->CFG['db']['tbl']['users'].' AS u WHERE '.
  1681. $sql_condition.$add_order.' LIMIT 1, '.
  1682. $this->CFG['admin']['musics']['index_page_music_list_total_thumbnail'];
  1683.  
  1684. $stmt = $this->dbObj->Prepare($sql);
  1685. $rs = $this->dbObj->Execute($stmt);
  1686. if (!$rs)
  1687. trigger_error($this->dbObj->ErrorNo().' '.
  1688. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  1689.  
  1690. //$populateCurrentlyPlayingSongsDetail_arr['record_count'] = false;
  1691. //if($rs->PO_RecordCount() >= $this->CFG['admin']['musics']['recent_musics_play_list_counts'])
  1692. $populateCurrentlyPlayingSongsDetail_arr['record_count'] = $rs->PO_RecordCount();
  1693.  
  1694. return $populateCurrentlyPlayingSongsDetail_arr;
  1695. }
  1696.  
  1697. /**
  1698. * musicHandler::getAlbumImageName()
  1699. * // GET ALBUM IMAGE FROM TOP RATED MUSIC \\
  1700. * @param mixed $album_id
  1701. * @return
  1702. */
  1703. public function getAlbumImageName($album_id)
  1704. {
  1705. $sql = 'SELECT m.large_width, m.large_height, m.thumb_width, m.thumb_height, m.medium_width, m.medium_height, m.music_id, m.music_server_url, m.music_thumb_ext, mfs.file_name'.' '.
  1706. 'FROM '.$this->CFG['db']['tbl']['music'].' AS m JOIN '.$this->CFG['db']['tbl']['music_files_settings'].' AS mfs ON mfs.music_file_id = m.thumb_name_id, '
  1707. .$this->CFG['db']['tbl']['music_album'].' AS ma, '.$this->CFG['db']['tbl']['users'].' AS u '.
  1708. 'WHERE u.user_id = m.user_id AND m.music_album_id = ma.music_album_id AND u.usr_status = \'Ok\'
  1709. AND m.music_status = \'Ok\' AND m.music_thumb_ext <> " " AND ma.music_album_id = \''.$album_id.'\''.$this->getAdultQuery('m.', 'music').' '.
  1710. 'AND (m.user_id = '.$this->CFG['user']['user_id'].' OR m.music_access_type = \'Public\''.$this->getAdditionalQuery().') LIMIT 0 , 1';
  1711.  
  1712. $stmt = $this->dbObj->Prepare($sql);
  1713. $rs = $this->dbObj->Execute($stmt);
  1714. if (!$rs)
  1715. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1716.  
  1717. $album_image = $rs->FetchRow();
  1718. return $album_image;
  1719.  
  1720. }
  1721.  
  1722. /**
  1723. * musicHandler::populateMusicRatingImages()
  1724. * // GET Populate Rating images for Music List \\
  1725. * @param mixed
  1726. * @return
  1727. */
  1728. public function populateMusicRatingImages($rating = 0,$imagePrefix='',$condition='',$url='')
  1729. {
  1730.  
  1731. $rating = round($rating,0);
  1732. global $smartyObj;
  1733. $populateRatingImages_arr = array();
  1734. $populateRatingImages_arr['rating'] = $rating;
  1735. $populateRatingImages_arr['condition'] = $condition;
  1736. $populateRatingImages_arr['url'] = $url;
  1737. $populateRatingImages_arr['rating_total'] = $this->CFG['admin']['total_rating'];
  1738. if($populateRatingImages_arr['rating']>$populateRatingImages_arr['rating_total'])
  1739. $populateRatingImages_arr['rating'] = $populateRatingImages_arr['rating_total'];
  1740. $populateRatingImages_arr['bulet_star'] = $this->CFG['site']['music_url'].'design/templates/'.$this->CFG['html']['template']['default'].'/root/images/'.$this->CFG['html']['stylesheet']['screen']['default'].'/icon-audioratehover.gif';
  1741. $populateRatingImages_arr['bulet_star_empty'] = $this->CFG['site']['music_url'].'design/templates/'.$this->CFG['html']['template']['default'].'/root/images/'.$this->CFG['html']['stylesheet']['screen']['default'].'/icon-audiorate.gif';
  1742. $smartyObj->assign('populateRatingImages_arr', $populateRatingImages_arr);
  1743. setTemplateFolder('general/', 'music');
  1744. $smartyObj->display('populateMusicRatingImages.tpl');
  1745. }
  1746.  
  1747.  
  1748. /**
  1749. * MusicHandler::getArtistLink()
  1750. *
  1751. * @param mixed $artist_ids
  1752. * @param mixed $echo_link
  1753. * @param integer $limit(It is used to number artisr name we display IF $limit=0 then display all artist name)
  1754. * @parm search_word(It is used to when we search the music are album list we are usinfg this parameter otherewise it is empty).
  1755. * @return
  1756. */
  1757. public function getArtistLink($artist_ids, $echo_link=false, $limit=0, $search_word='')
  1758. {
  1759. $artist_id_array = explode(',', $artist_ids);
  1760. $total_artist = count($artist_id_array);
  1761. $inc = 1;
  1762. $return_full_str = '';
  1763. $jnc = 1;
  1764. foreach($artist_id_array as $artist_id)
  1765. {
  1766. if(($limit>0 and $limit>=$jnc) or $limit==0)
  1767. {
  1768. $sql = 'SELECT artist_name '.
  1769. ' FROM '.$this->CFG['db']['tbl']['music_artist'].
  1770. ' WHERE music_artist_id = '.$this->dbObj->Param('artist_id');
  1771.  
  1772. $stmt = $this->dbObj->Prepare($sql);
  1773. $rs = $this->dbObj->Execute($stmt, array($artist_id));
  1774. if (!$rs)
  1775. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1776.  
  1777. if($rs->PO_RecordCount())
  1778. {
  1779. $row = $rs->FetchRow();
  1780. $wordWrap_mb_ManualWithSpace_artist_name = wordWrap_mb_ManualWithSpace($row['artist_name'], $this->CFG['admin']['musics']['member_music_artist_name_length'], $this->CFG['admin']['musics']['member_music_artiat_name_total_length']);
  1781. // The following code is used for highlight the search music artist. by yogaraja_090at09.
  1782. if(!empty($search_word))
  1783. $wordWrap_mb_ManualWithSpace_artist_name = highlightWords($wordWrap_mb_ManualWithSpace_artist_name, $search_word);
  1784. $return_str = '<a href="'.getUrl('musiclist', '?pg=musicnew&artist_id='.trim($artist_id), 'musicnew/?artist_id='.trim($artist_id), 'root', 'music').'" title="'.$row['artist_name'].'" class="clsLink">'.$wordWrap_mb_ManualWithSpace_artist_name.'</a>';
  1785. $return_full_str .= $return_str;
  1786. if(!$echo_link)
  1787. echo $return_str;
  1788. $coma = '';
  1789. if($limit>=1)
  1790. {
  1791. if($limit > $inc and $limit>1)
  1792. $coma = ', ';
  1793. }
  1794. else
  1795. {
  1796. if($total_artist > $inc)
  1797. $coma = ', ';
  1798. }
  1799. if(!$echo_link)
  1800. echo $coma;
  1801. $return_full_str .= $coma;
  1802. $inc++;
  1803. }
  1804. }$jnc++;
  1805. }
  1806. return $return_full_str;
  1807. }
  1808.  
  1809. /**
  1810. * musicHandler::getArtistsNames()
  1811. *
  1812. * @param string $artist_id comma separated
  1813. * @return string (comma separated artist names)
  1814. */
  1815. public function getArtistsNames($artist_id)
  1816. {
  1817. $artist_id_arr = explode(',', $artist_id);
  1818. $artist_name_arr = array();
  1819. foreach($artist_id_arr as $artist_id)
  1820. {
  1821. $sql = 'SELECT artist_name '.
  1822. ' FROM '.$this->CFG['db']['tbl']['music_artist'].
  1823. ' WHERE music_artist_id = '.$this->dbObj->Param('artist_id');
  1824.  
  1825. $stmt = $this->dbObj->Prepare($sql);
  1826. $rs = $this->dbObj->Execute($stmt, array($artist_id));
  1827. if (!$rs)
  1828. trigger_error($this->dbObj->ErrorNo().' '.
  1829. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  1830.  
  1831. if(!$rs->PO_RecordCount())
  1832. return false;
  1833.  
  1834. if($row = $rs->FetchRow())
  1835. {
  1836. $artist_name_arr[] = $row['artist_name'];
  1837. }
  1838. }
  1839. if(!empty($artist_name_arr))
  1840. return implode(',', $artist_name_arr);
  1841. return '';
  1842. }
  1843.  
  1844.  
  1845. /**
  1846. * MusicHandler::getMusicCategoryName()
  1847. *
  1848. * @param string $categoryId
  1849. * @access public
  1850. * @return string (return category name)
  1851. */
  1852. public function getMusicCategoryName($categoryId = ''){
  1853. $sql = 'SELECT music_category_name FROM '.$this->CFG['db']['tbl']['music_category'].' WHERE music_category_id = '.$this->dbObj->Param('music_category_id');
  1854. $stmt = $this->dbObj->Prepare($sql);
  1855. $rs = $this->dbObj->Execute($stmt, array($categoryId));
  1856. if (!$rs)
  1857. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1858. if($rs->PO_RecordCount()){
  1859. if($row = $rs->FetchRow())
  1860. return $row['music_category_name'];
  1861. }
  1862. return '';
  1863. }
  1864.  
  1865. /**
  1866. * musicHandler::getArtistIdFromName()
  1867. *
  1868. * @param string $artist_name
  1869. * @return string
  1870. */
  1871. public function getArtistIdFromName($artist_name)
  1872. {
  1873. $sql = 'SELECT music_artist_id FROM '.$this->CFG['db']['tbl']['music_artist'].
  1874. ' WHERE artist_name='.$this->dbObj->Param('music_artist');
  1875.  
  1876. $stmt = $this->dbObj->Prepare($sql);
  1877. $rs = $this->dbObj->Execute($stmt, array($artist_name));
  1878. if (!$rs)
  1879. trigger_error($this->dbObj->ErrorNo().' '.
  1880. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  1881.  
  1882. if($rs->PO_RecordCount())
  1883. {
  1884. if($row = $rs->FetchRow())
  1885. {
  1886. return $row['music_artist_id'];
  1887. }
  1888. }
  1889. return false;
  1890. }
  1891.  
  1892. /**
  1893. * musicHandler::getTagsLink()
  1894. *
  1895. * @param mixed $tag_srting, $tagoption
  1896. * @return
  1897. */
  1898. public function getTagsLink($tag_srting, $tagoption='music')
  1899. {
  1900. global $smartyObj;
  1901. $getTagsLink_arr = array();
  1902. $tag_array = explode(' ', $tag_srting);
  1903. $inc = 1;
  1904. foreach($tag_array as $tag_name)
  1905. {
  1906. $getTagsLink_arr[$inc]['wordWrap_mb_ManualWithSpace_tag_name'] = wordWrap_mb_ManualWithSpace($tag_name, $this->CFG['admin']['musics']['member_music_tags_name_length'], $this->CFG['admin']['musics']['member_music_tags_name_total_length']);
  1907. $getTagsLink_arr[$inc]['title_tag_name'] = $tag_name;
  1908. if($tagoption == 'music')
  1909. {
  1910. $getTagsLink_arr[$inc]['tag_url'] = getUrl('musiclist', '?pg=musicnew&tags='.$tag_name, 'musicnew/?tags='.$tag_name, '', 'music');
  1911. }
  1912. elseif($tagoption == 'playlist')
  1913. {
  1914. $getTagsLink_arr[$inc]['tag_url'] = getUrl('musicplaylist', '?pg=playlistnew&tags='.$tag_name, 'playlistnew/?tags='.$tag_name, '', 'music');
  1915. }
  1916. }
  1917. $smartyObj->assign('getTagsLink_arr', $getTagsLink_arr);
  1918. setTemplateFolder('general/', 'music');
  1919. $smartyObj->display('populateTagsLinks.tpl');
  1920. }
  1921. /**
  1922. * musicHandler::deletePlaylistMusics()
  1923. * // GET Populate Rating images for Music List \\
  1924. * @param mixed
  1925. * @return
  1926. */
  1927. public function deletePlaylistMusic($music_id)
  1928. {
  1929.  
  1930. $sql ='SELECT playlist_id FROM '.$this->CFG['db']['tbl']['music_playlist'].' WHERE thumb_music_id='.$this->dbObj->Param('music_id').'AND playlist_id='.$this->dbObj->Param('playlist_id') ;
  1931. $stmt = $this->dbObj->Prepare($sql);
  1932. $rs = $this->dbObj->Execute($stmt, array($music_id, $this->fields_arr['playlist_id']));
  1933. if (!$rs)
  1934. trigger_db_error($this->dbObj);
  1935. $row = $rs->FetchRow();
  1936. $nofiy_msg = 1;
  1937. if($row['playlist_id'])
  1938. {
  1939. $nofiy_msg = 2;
  1940. $sql = 'SELECT v.music_id '.
  1941. 'FROM '.$this->CFG['db']['tbl']['music_in_playlist'].' as v, '.$this->CFG['db']['tbl']['music_playlist'].' as vp '.
  1942. 'WHERE v.music_id !='.$this->dbObj->Param('music_id').' '.
  1943. 'AND vp.playlist_id = v.playlist_id AND vp.playlist_id ='.$this->dbObj->Param('playlist_id').' '.
  1944. 'ORDER BY order_id DESC LIMIT 0 , 1';
  1945.  
  1946. $stmt = $this->dbObj->Prepare($sql);
  1947. $rs = $this->dbObj->Execute($stmt, array($music_id, $this->fields_arr['playlist_id']));
  1948. if (!$rs)
  1949. trigger_db_error($this->dbObj);
  1950.  
  1951. $rowSet = $rs->FetchRow();
  1952. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_playlist'].' set thumb_music_id = '.$this->dbObj->Param('music_id').' WHERE playlist_id = '.$this->dbObj->Param('playlist_id').'';
  1953.  
  1954. $stmt = $this->dbObj->Prepare($sql);
  1955. $rs = $this->dbObj->Execute($stmt, array($rowSet['music_id'], $this->fields_arr['playlist_id']));
  1956. if (!$rs)
  1957. trigger_db_error($this->dbObj);
  1958. }
  1959.  
  1960. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_in_playlist'].' WHERE music_id='.$this->dbObj->Param('music_id').' AND playlist_id='.$this->dbObj->Param('playlist_id');
  1961.  
  1962. $stmt = $this->dbObj->Prepare($sql);
  1963. $rs = $this->dbObj->Execute($stmt, array($music_id, $this->fields_arr['playlist_id']));
  1964. if (!$rs)
  1965. trigger_db_error($this->dbObj);
  1966.  
  1967. if($this->dbObj->Affected_Rows())
  1968. {
  1969. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music_playlist'].' SET total_tracks=total_tracks-1 WHERE playlist_id='.$this->dbObj->Param('playlist_id');
  1970.  
  1971. $stmt = $this->dbObj->Prepare($sql);
  1972. $rs = $this->dbObj->Execute($stmt, array($this->fields_arr['playlist_id']));
  1973. if (!$rs)
  1974. trigger_db_error($this->dbObj);
  1975. }
  1976. }
  1977.  
  1978. /**
  1979. * musicHandler::deleteMusicTag()
  1980. *
  1981. * @param mixed $music_id
  1982. * @acces public
  1983. */
  1984. public function deleteMusicTag($music_id){
  1985. // DELETE TAGS
  1986. $sql='SELECT music_tags FROM '.$this->CFG['db']['tbl']['music'].' WHERE music_id IN('.$music_id.')';
  1987. $stmt = $this->dbObj->Prepare($sql);
  1988. $rs = $this->dbObj->Execute($stmt);
  1989. if (!$rs)
  1990. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  1991.  
  1992. while($tag_row = $rs->FetchRow()){
  1993. $tag=explode(' ',$tag_row['music_tags']);
  1994. for($i=0;$i<count($tag);$i++){
  1995. $sql='SELECT music_id FROM '.$this->CFG['db']['tbl']['music'].
  1996. ' WHERE concat( \' \', music_tags, \' \' ) LIKE "% '.$tag[$i].' %" AND music_id NOT IN('.$music_id.')'.' AND music_status!=\'Deleted\'';
  1997. $stmt = $this->dbObj->Prepare($sql);
  1998. $rs_tag = $this->dbObj->Execute($stmt);
  1999. if (!$rs_tag)
  2000. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2001. if(!$row = $rs_tag->FetchRow()){
  2002. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_tags'].
  2003. ' WHERE tag_name=\''.$tag[$i].'\'';
  2004. $stmt = $this->dbObj->Prepare($sql);
  2005. $rs_delete = $this->dbObj->Execute($stmt);
  2006. if (!$rs_delete)
  2007. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2008. }
  2009. }
  2010. }
  2011. // DELETE TAG END
  2012. }
  2013.  
  2014. /**
  2015. * musicHandler::deleteMusicArtist()
  2016. *
  2017. * @param mixed $music_id
  2018. * @acces public
  2019. */
  2020. public function deleteMusicArtist($music_id){
  2021. // DELETE Artist
  2022. $sql='SELECT music_artist FROM '.$this->CFG['db']['tbl']['music'].' WHERE music_id IN('.$music_id.')';
  2023. $stmt = $this->dbObj->Prepare($sql);
  2024. $rs = $this->dbObj->Execute($stmt);
  2025. if (!$rs)
  2026. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2027.  
  2028. while($artist_row = $rs->FetchRow()){
  2029. $artist=explode(',',$artist_row['music_artist']);
  2030. for($i=0;$i<count($artist);$i++){//DO NOT DELETE DEFAULT ARTIST ID (artist_id: 1 artist_name: NotSpecified)//
  2031. $sql='SELECT music_id FROM '.$this->CFG['db']['tbl']['music'].
  2032. ' WHERE FIND_IN_SET('.$artist[$i].', music_artist) AND music_id NOT IN('.$music_id.')'.' AND music_status!=\'Deleted\'';
  2033. $stmt = $this->dbObj->Prepare($sql);
  2034. $rs_artist = $this->dbObj->Execute($stmt);
  2035. if (!$rs_artist)
  2036. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2037. if(!$row = $rs_artist->FetchRow()){
  2038. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_artist'].
  2039. ' WHERE music_artist_id=\''.$artist[$i].'\' AND music_artist_id!=\'1\'';
  2040. $stmt = $this->dbObj->Prepare($sql);
  2041. $rs_delete = $this->dbObj->Execute($stmt);
  2042. if (!$rs_delete)
  2043. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2044. }
  2045. }
  2046. }
  2047. // DELETE Artist END
  2048. }
  2049.  
  2050. /**
  2051. * MusicHandler::myMusicListDelete()
  2052. *
  2053. * @param array $music_id_arr
  2054. * @param mixed $user_id
  2055. * @return
  2056. */
  2057. public function myMusicListDelete($music_id_arr = array(), $user_id)
  2058. {
  2059. $music_id = implode(',',$music_id_arr);
  2060. $this->deleteMusicPlaylistTag($music_id);
  2061. $this->deleteMusicTag($music_id);
  2062. $this->deleteMusicArtist($music_id);
  2063. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music'].' SET music_status=\'Deleted\'' . ' WHERE music_id IN(' . $music_id . ')' ;
  2064. $stmt = $this->dbObj->Prepare($sql);
  2065. $rs = $this->dbObj->Execute($stmt);
  2066. if (!$rs)
  2067. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2068. if($affected_rows = $this->dbObj->Affected_Rows())
  2069. {
  2070. $sql= 'SELECT count(music_encoded_status) AS count FROM '.$this->CFG['db']['tbl']['music'].
  2071. ' WHERE music_id IN(' . $music_id . ') AND music_encoded_status=\'Yes\'';
  2072. $stmt = $this->dbObj->Prepare($sql);
  2073. $rs = $this->dbObj->Execute($stmt);
  2074. if (!$rs)
  2075. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2076. if($row = $rs->FetchRow())
  2077. {
  2078. $count = $row['count'];
  2079. }
  2080.  
  2081. $sql= 'UPDATE '.$this->CFG['db']['tbl']['users'].' SET'.
  2082. ' total_musics=total_musics-' . $count . ' WHERE user_id=' . $this->dbObj->Param('user_id').' AND total_musics>0';
  2083. $stmt = $this->dbObj->Prepare($sql);
  2084. $rs = $this->dbObj->Execute($stmt, array($user_id));
  2085. if (!$rs)
  2086. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2087. $tablename_arr = array('music_comments', 'music_favorite', 'music_viewed', 'music_rating');
  2088. for($i=0;$i<sizeof($tablename_arr);$i++)
  2089. {
  2090. $sql = 'DELETE FROM '.$this->CFG['db']['tbl'][$tablename_arr[$i]].
  2091. ' WHERE music_id IN(' . $music_id . ')';
  2092. $stmt = $this->dbObj->Prepare($sql);
  2093. $rs = $this->dbObj->Execute($stmt);
  2094. if (!$rs)
  2095. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2096. }
  2097. $sql = 'DELETE FROM ' . $this->CFG['db']['tbl']['flagged_contents'] . ' WHERE content_type=\'Music\' AND content_id IN(' . $music_id . ')';
  2098. $stmt = $this->dbObj->Prepare($sql);
  2099. $rs = $this->dbObj->Execute($stmt);
  2100. if (!$rs)
  2101. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2102. $sql = 'DELETE FROM ' . $this->CFG['db']['tbl']['music_listened'] . ' WHERE music_id IN(' . $music_id . ')'.'AND user_id=' . $this->dbObj->Param('user_id');
  2103. $stmt = $this->dbObj->Prepare($sql);
  2104. $rs = $this->dbObj->Execute($stmt,array($user_id));
  2105. if (!$rs)
  2106. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2107.  
  2108. // **********End************
  2109. /*if ($this->chkIsFeaturedMusic($music_id_arr, $user_id)) {
  2110. $new_video= $this->getNewFeaturedVideo($user_id);
  2111. $this->setFeatureThisImage($new_video, $user_id);
  2112. }*/
  2113. }
  2114. return true;
  2115. }
  2116.  
  2117. /**
  2118. * musicHandler::deleteFavoriteMusic()
  2119. *
  2120. * @param purpose $ To delete the selected favorite music of the particular user
  2121. * @param mixed $music_id
  2122. * @param mixed $user_id
  2123. * @return void
  2124. */
  2125. public function deleteFavoriteMusic($music_id, $user_id)
  2126. {
  2127. $sql = 'SELECT mf.music_favorite_id, mf.user_id as favorite_user_id, m.user_id '.
  2128. ' FROM '.$this->CFG['db']['tbl']['music_favorite'].' as mf, '.
  2129. $this->CFG['db']['tbl']['users'].' as u, '.$this->CFG['db']['tbl']['music'].' as m '.
  2130. ' WHERE u.user_id = mf.user_id AND mf.music_id = m.music_id AND mf.user_id = '.
  2131. $this->dbObj->Param('user_id').' AND mf.music_id = '.$this->dbObj->Param('music_id');
  2132.  
  2133. $stmt = $this->dbObj->Prepare($sql);
  2134. $rs = $this->dbObj->Execute($stmt, array($user_id, $music_id));
  2135. if (!$rs)
  2136. trigger_error($this->dbObj->ErrorNo().' '.
  2137. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2138.  
  2139. $row = $rs->FetchRow();
  2140. $activity_arr = $row;
  2141. $activity_arr['action_key'] = 'delete_music_favorite';
  2142. $musicActivityObj = new MusicActivityHandler();
  2143. $musicActivityObj->addActivity($activity_arr);
  2144.  
  2145. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_favorite'].' WHERE'.
  2146. ' user_id=' . $this->dbObj->Param('user_id') . ' AND' . ' music_id=' . $this->dbObj->Param('music_id');
  2147.  
  2148. $stmt = $this->dbObj->Prepare($sql);
  2149. $rs = $this->dbObj->Execute($stmt, array($user_id, $music_id));
  2150. if (!$rs)
  2151. trigger_error($this->dbObj->ErrorNo().' '.
  2152. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2153.  
  2154. if ($this->dbObj->Affected_Rows())
  2155. {
  2156. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music'].' SET total_favorites = total_favorites-1'.
  2157. ' WHERE music_id=' . $this->dbObj->Param('music_id');
  2158.  
  2159. $stmt = $this->dbObj->Prepare($sql);
  2160. $rs = $this->dbObj->Execute($stmt, array($music_id));
  2161. if (!$rs)
  2162. trigger_error($this->dbObj->ErrorNo().' '.
  2163. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2164. }
  2165. }
  2166.  
  2167. /**
  2168. * musicHandler::getMusicDetails()
  2169. *
  2170. * @param purpose $ To get music details in music list
  2171. * @param mixed $music_id
  2172. * @param mixed $user_id
  2173. * @return
  2174. */
  2175. public function getMusicDetails($music_field_arr = array(), $music_id, $user_id=0)
  2176. {
  2177. $music_field = implode(',', $music_field_arr);
  2178. $additional = '';
  2179. if ($user_id)
  2180. {
  2181. $additional = ' AND user_id='.$user_id;
  2182. }
  2183. $sql = 'SELECT '.$music_field.' FROM '.$this->CFG['db']['tbl']['music'].' WHERE music_id=' . $this->dbObj->Param('music_id') . ' AND' . ' music_status=\'Ok\'' . $additional . ' LIMIT 0,1';
  2184. $stmt = $this->dbObj->Prepare($sql);
  2185. $rs = $this->dbObj->Execute($stmt, array($music_id));
  2186. if (!$rs)
  2187. trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2188. if($row = $rs->FetchRow())
  2189. {
  2190. $this->music_details = $row;
  2191. return $this->music_details;
  2192. }
  2193. return false;
  2194. }
  2195.  
  2196. /**
  2197. * musicHandler::populateMusicCategoryList()
  2198. *
  2199. * @param purpose $ To get music Category List in music list
  2200. * @param mixed $user_id
  2201. * @return
  2202. */
  2203. public function populateMusicCategoryList($highlight_user_id)
  2204. {
  2205. $sql = 'SELECT music_category_name '.' FROM '.$this->CFG['db']['tbl']['music_category'];
  2206. $stmt = $this->dbObj->Prepare($sql);
  2207. $rs = $this->dbObj->Execute($stmt);
  2208. if (!$rs)
  2209. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2210. $highlight_value = $this->fields_arr['music_category_name'];
  2211. if($rs->PO_RecordCount())
  2212. {
  2213. while($row = $rs->FetchRow())
  2214. {
  2215. $out = '';
  2216. $selected = $highlight_value == $row['music_category_name']?' selected':'';
  2217. ?>
  2218. <option value="<?php echo $row['music_category_name'];?>"<?php echo $selected;?>>
  2219. <?php echo $row['music_category_name'];?>
  2220. </option>
  2221. <?php
  2222. }
  2223. }
  2224. }
  2225.  
  2226. /**
  2227. * MusicHandler::populateSinglePlayerConfiguration()
  2228. *
  2229. * @return void
  2230. */
  2231. public function populateSinglePlayerConfiguration()
  2232. {
  2233. $this->flv_player_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['single_player']['player_path'].
  2234. $this->CFG['admin']['musics']['single_player']['swf_name'].'.swf';
  2235. $this->configXmlcode_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['single_player']['config_name'].'.php?';
  2236. $this->playlistXmlcode_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['single_player']['playlist_name'].'.php?';
  2237. $this->addsXmlCode_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['single_player']['ad_name'].'.php';
  2238. $this->themesXml_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['single_player']['theme_path'].
  2239. $this->CFG['admin']['musics']['single_player']['xml_theme'];
  2240.  
  2241. }
  2242.  
  2243. /**
  2244. * MusicHandler::populateSinglePlayer()
  2245. *
  2246. * @param string $div_id
  2247. * @param string $music_player_id
  2248. * @param integer $width
  2249. * @param integer $height
  2250. * @param string $auto_play
  2251. * @return void
  2252. */
  2253. public function populateSinglePlayer($music_fields=array())
  2254. {
  2255. //$div_id='flashcontent', $music_player_id, $width, $height, $auto_play='false';
  2256. if(!array_key_exists ('div_id', $music_fields))
  2257. $music_fields['div_id'] = 'flashcontent';
  2258.  
  2259. if($music_fields['width'] == '')
  2260. $width = $this->CFG['admin']['musics']['single_player']['width'];
  2261.  
  2262. if($music_fields['height'] == '')
  2263. $height = $this->CFG['admin']['musics']['single_player']['height'];
  2264.  
  2265. echo '<div id="'.$music_fields['div_id'].'"></div>';
  2266. ?>
  2267. <script type="text/javascript">
  2268. var music_player_id = '<?php echo $music_fields['music_player_id'];?>';
  2269. var so1 = new SWFObject("<?php echo $this->flv_player_url; ?>", music_player_id, "<?php echo $width; ?>", "<?php echo $height; ?>", "7", "#000000");
  2270. so1.addParam("wmode", "transparent");
  2271. so1.addVariable("autoplay", "<?php echo $music_fields['auto_play']; ?>");
  2272. so1.addVariable("configXmlPath", "<?php echo $this->configXmlcode_url; ?>");
  2273. so1.addVariable("playListXmlPath", "<?php echo $this->playlistXmlcode_url; ?>");
  2274. so1.addVariable("themes", "<?php echo $this->themesXml_url; ?>");
  2275. so1.write("<?php echo $music_fields['div_id']; ?>");
  2276. </script>
  2277. <?php
  2278. }
  2279. /**
  2280. * musicHandler::populatePlayerWithPlaylistConfiguration()
  2281. *
  2282. * @return void
  2283. */
  2284. public function populatePlayerWithPlaylistConfiguration()
  2285. {
  2286. $this->flv_player_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['playlist_player']['player_path'].
  2287. $this->CFG['admin']['musics']['playlist_player']['swf_name'].'.swf';
  2288. $this->configXmlcode_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['playlist_player']['config_name'].'.php?';
  2289. $this->playlistXmlcode_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['playlist_player']['playlist_name'].'.php?';
  2290. $this->addsXmlCode_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['playlist_player']['ad_name'].'.php';
  2291. $this->themesXml_url = $this->CFG['site']['url'].$this->CFG['admin']['musics']['playlist_player']['theme_path'].
  2292. $this->CFG['admin']['musics']['playlist_player']['xml_theme'];
  2293.  
  2294. }
  2295.  
  2296. /**
  2297. * musicHandler::populatePlayerWithPlaylist()
  2298. *
  2299. * @param string $div_id
  2300. * @param string $music_player_id
  2301. * @param integer $width
  2302. * @param integer $height
  2303. * @param string $auto_play
  2304. * @param boolean $hidden
  2305. * @param boolean $playlist_auto_play
  2306. * @param boolean $javascript_enabled
  2307. * @param boolean $player_ready_enabled
  2308. * @return void
  2309. */
  2310. public function populatePlayerWithPlaylist($music_fields=array())
  2311. {
  2312. //$div_id='flashcontent', $music_player_id, $width, $height, $auto_play='false', $hidden=false, $playlist_auto_play = 'true', $javascript_enabled = false, $player_ready_enabled=false
  2313. $default_array = array(
  2314. 'div_id' => 'flashcontent',
  2315. 'auto_play' => 'false',
  2316. 'playlist_auto_play' => true,
  2317. 'javascript_enabled' => false,
  2318. 'player_ready_enabled' => false,
  2319. 'hidden' => false
  2320. );
  2321.  
  2322. foreach($default_array as $key => $value)
  2323. {
  2324. if(!array_key_exists ($key, $music_fields))
  2325. $music_fields[$key] = $value;
  2326. }
  2327.  
  2328. echo '<div id="'.$music_fields['div_id'].'"';
  2329. if($music_fields['hidden'])
  2330. echo ' class="clsHiddenPlayer"';
  2331. echo '><!----></div>';
  2332.  
  2333. if($music_fields['playlist_auto_play'])
  2334. $playlist_auto_play = 'true';
  2335. else
  2336. $playlist_auto_play = 'false';
  2337.  
  2338. if($music_fields['javascript_enabled'])
  2339. $javascript_enabled = 'true';
  2340. else
  2341. $javascript_enabled = 'false';
  2342.  
  2343. if($music_fields['player_ready_enabled'])
  2344. $player_ready_enabled = 'true';
  2345. else
  2346. $player_ready_enabled = 'false';
  2347. ?>
  2348. <script type="text/javascript">
  2349. var music_player_id = '<?php echo $music_fields['music_player_id'];?>';
  2350. var so1 = new SWFObject("<?php echo $this->flv_player_url; ?>", music_player_id, "<?php echo $music_fields['width']; ?>", "<?php echo $music_fields['height']; ?>", "7", "#000000");
  2351. so1.addParam("wmode", "transparent");
  2352. so1.addVariable("autoplay", "<?php echo $music_fields['auto_play']; ?>");
  2353. so1.addVariable("configXmlPath", "<?php echo $this->configXmlcode_url; ?>");
  2354. so1.addVariable("playListXmlPath", "<?php echo $this->playlistXmlcode_url; ?>");
  2355. so1.addVariable("themesXmlPath", "<?php echo $this->themesXml_url; ?>");
  2356. so1.addVariable("playListAutoPlay", "<?php echo $playlist_auto_play; ?>");
  2357. so1.addVariable("javascriptEnabled", "<?php echo $javascript_enabled; ?>");
  2358. so1.addVariable("callJSWhenPlayerReady", "<?php echo $player_ready_enabled; ?>");
  2359. so1.write("<?php echo $music_fields['div_id']; ?>");
  2360. createJSFCommunicatorObject(thisMovie(music_player_id));
  2361. </script>
  2362. <?php
  2363. }
  2364.  
  2365. /**
  2366. * musicHandler::populatePlayerWithPlaylistForAjax()
  2367. * For AJAX pages (Note: player div have to be placed in tpl)
  2368. *
  2369. * @param string $div_id
  2370. * @param string $music_player_id
  2371. * @param integer $width
  2372. * @param integer $height
  2373. * @param string $auto_play
  2374. * @param boolean $hidden
  2375. * @param boolean $playlist_auto_play
  2376. * @param boolean $javascript_enabled
  2377. * @param boolean $player_ready_enabled
  2378. * @return void
  2379. */
  2380. public function populatePlayerWithPlaylistForAjax($div_id='flashcontent', $music_player_id, $width, $height, $auto_play='false', $hidden=false, $playlist_auto_play = true, $javascript_enabled = false, $player_ready_enabled=false)
  2381. {
  2382. if($playlist_auto_play)
  2383. $playlist_auto_play = 'true';
  2384. else
  2385. $playlist_auto_play = 'false';
  2386.  
  2387. if($javascript_enabled)
  2388. $javascript_enabled = 'true';
  2389. else
  2390. $javascript_enabled = 'false';
  2391.  
  2392. if($player_ready_enabled)
  2393. $player_ready_enabled = 'true';
  2394. else
  2395. $player_ready_enabled = 'false';
  2396.  
  2397. ?>
  2398. var hidden_music_player_id = '<?php echo $music_player_id;?>';
  2399. var so1 = new SWFObject("<?php echo $this->flv_player_url; ?>", hidden_music_player_id, "<?php echo $width; ?>", "<?php echo $height; ?>", "7", "#000000");
  2400. so1.addParam("wmode", "transparent");
  2401. so1.addVariable("autoplay", "<?php echo $auto_play; ?>");
  2402. so1.addVariable("configXmlPath", "<?php echo $this->configXmlcode_url; ?>");
  2403. so1.addVariable("playListXmlPath", "<?php echo $this->playlistXmlcode_url; ?>");
  2404. so1.addVariable("themesXmlPath", "<?php echo $this->themesXml_url; ?>");
  2405. so1.addVariable("playListAutoPlay", "<?php echo $playlist_auto_play; ?>");
  2406. so1.addVariable("javascriptEnabled", "<?php echo $javascript_enabled; ?>");
  2407. so1.addVariable("callJSWhenPlayerReady", "<?php echo $player_ready_enabled; ?>");
  2408. so1.write("<?php echo $div_id; ?>");
  2409. createJSFCommunicatorObject(thisMovie(hidden_music_player_id));
  2410. <?php
  2411. }
  2412.  
  2413. /**
  2414. * MusicHandler::chkIsAllowedLeftMenu()
  2415. *
  2416. * @return
  2417. */
  2418. public function chkIsAllowedLeftMenu()
  2419. {
  2420. global $HeaderHandler;
  2421. $allowed_pages_array = array('index.php', 'viewPlaylist.php', 'viewAlbum.php');
  2422. $HeaderHandler->headerBlock['left_menu_display'] = displayBlock($allowed_pages_array, false, $append_default_pages=false);
  2423. return $HeaderHandler->headerBlock['left_menu_display'];
  2424. }
  2425.  
  2426. /**
  2427. * MusicHandler::populateFeaturedPlaylist()
  2428. *
  2429. * @return void
  2430. */
  2431. public function populateFeaturedPlaylist()
  2432. {
  2433. global $smartyObj;
  2434. $sql = 'SELECT sum(mpl.total_visits) AS total_palys, pl.playlist_id, pl.user_id, TIMEDIFF(NOW(), pl.last_viewed_date) AS last_viewed_date, pl.playlist_name, (pl.rating_total/pl.rating_count) as rating, pl.total_favorites, pl.total_featured,rating_count,
  2435. DATE_FORMAT(pl.date_added,\''.$this->CFG['format']['date'].'\') as date_added, pl.allow_ratings, pl.allow_comments, pl.total_comments, pl.total_tracks,pl.featured, pl.total_views, pl.playlist_description, pl.playlist_tags, pl.thumb_ext,pl.thumb_music_id, u.user_name
  2436. FROM '.$this->CFG['db']['tbl']['music_playlist'].' AS pl LEFT JOIN '.$this->CFG['db']['tbl']['music_playlist_listened'].' AS mpl ON mpl.playlist_id=mpl.playlist_id, '.$this->CFG['db']['tbl']['users'].' AS u '.
  2437. 'WHERE u.user_id =pl.user_id AND u.usr_status = \'Ok\' AND pl.playlist_status = \'Yes\' AND pl.featured=\'Yes\' GROUP BY mpl.playlist_id';
  2438.  
  2439. $stmt = $this->dbObj->Prepare($sql);
  2440. $rs = $this->dbObj->Execute($stmt);
  2441. if (!$rs)
  2442. trigger_error($this->dbObj->ErrorNo().' '.
  2443. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2444.  
  2445. $this->featured_playlist_arr = array();
  2446.  
  2447. if($rs->PO_RecordCount())
  2448. $this->featured_playlist_arr = $rs->FetchRow();
  2449. }
  2450.  
  2451. /**
  2452. * MusicHandler::getMusicNavClass()
  2453. *
  2454. * @param mixed $identifier
  2455. * @return boolean
  2456. */
  2457. public function getMusicNavClass($identifier)
  2458. {
  2459. $identifier = strtolower($identifier);
  2460. return isset($this->_navigationArr[$identifier])?$this->_navigationArr[$identifier]:$this->_clsInActiveLink;
  2461. }
  2462.  
  2463. /**
  2464. * musicHandler::getPlaylistImageDetail()
  2465. * @ get 4 image
  2466. * @param integer $playlist_id
  2467. * @param boolean $condition - to add accesstype and additional query, adult query
  2468. * @return array
  2469. */
  2470. public function getPlaylistImageDetail($playlist_id, $condition=true)
  2471. {
  2472. $getPlaylistImageDetail_arr = array();
  2473. $playlist_thumbnail_folder = $this->CFG['media']['folder'].'/'.
  2474. $this->CFG['admin']['musics']['folder'].'/'.
  2475. $this->CFG['admin']['musics']['thumbnail_folder'].'/';
  2476.  
  2477. $sql = 'SELECT m.music_id, m.music_server_url, m.music_thumb_ext, mfs.file_name, '.
  2478. ' m.small_width, m.small_height, m.thumb_width, m.thumb_height FROM '.
  2479. $this->CFG['db']['tbl']['music_in_playlist'].' AS mip JOIN '.
  2480. $this->CFG['db']['tbl']['music'].' AS m ON m.music_id=mip.music_id JOIN '.
  2481. $this->CFG['db']['tbl']['music_files_settings'].' AS mfs '.
  2482. 'ON mfs.music_file_id = m.thumb_name_id, '.$this->CFG['db']['tbl']['users'].
  2483. ' AS u WHERE mip.playlist_id ='.$this->dbObj->Param('playlist_id').' '.
  2484. ' AND m.user_id=u.user_id AND u.usr_status = \'Ok\' AND m.music_status = \'Ok\' AND '.
  2485. ' m.music_thumb_ext!=" "';
  2486.  
  2487. if($condition)
  2488. $sql .= ' AND (m.user_id = '.$this->CFG['user']['user_id'].
  2489. ' OR m.music_access_type = \'Public\''.
  2490. $this->getAdditionalQuery().') '.$this->getAdultQuery('m.', 'music');
  2491.  
  2492. $sql .= ' ORDER BY m.music_id DESC LIMIT 0,4';
  2493.  
  2494. $stmt = $this->dbObj->Prepare($sql);
  2495. $rs = $this->dbObj->Execute($stmt, array($playlist_id));
  2496. if (!$rs)
  2497. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2498.  
  2499. $getPlaylistImageDetail_arr['total_record'] = $total = $rs->PO_RecordCount();
  2500. $getPlaylistImageDetail_arr['noimageCount'] = 0;
  2501. if($total < 4)
  2502. $getPlaylistImageDetail_arr['noimageCount'] = 4-$total;
  2503. $getPlaylistImageDetail_arr['row'] = array();
  2504. $inc = 1;
  2505. while($row = $rs->FetchRow())
  2506. {
  2507. $getPlaylistImageDetail_arr['row'][$inc]['record'] = $row;
  2508. $getPlaylistImageDetail_arr['row'][$inc]['playlist_thumb_path'] = $row['music_server_url'].$playlist_thumbnail_folder.getMusicImageName($row['music_id']).$this->CFG['admin']['musics']['thumb_name'].'.'.$row['music_thumb_ext'];
  2509. $getPlaylistImageDetail_arr['row'][$inc]['disp_thumb_image']= DISP_IMAGE($this->CFG['admin']['musics']['thumb_width'], $this->CFG['admin']['musics']['thumb_height'], $row['thumb_width'], $row['thumb_height']);
  2510. $getPlaylistImageDetail_arr['row'][$inc]['playlist_path'] = $row['music_server_url'].$playlist_thumbnail_folder.getMusicImageName($row['music_id']).$this->CFG['admin']['musics']['small_name'].'.'.$row['music_thumb_ext'];
  2511. $getPlaylistImageDetail_arr['row'][$inc]['disp_image']= DISP_IMAGE($this->CFG['admin']['musics']['small_width'], $this->CFG['admin']['musics']['small_height'], $row['small_width'], $row['small_height']);
  2512. $inc++;
  2513. }
  2514.  
  2515. return $getPlaylistImageDetail_arr;
  2516. }
  2517.  
  2518. /**
  2519. * MusicHandler::selectFeaturedMusic()
  2520. *
  2521. * @param string $condition
  2522. * @param array $value
  2523. * @param string $returnType
  2524. * @return mixed
  2525. */
  2526. public function selectFeaturedMusic($condition, $value, $returnType='')
  2527. {
  2528. $sql = 'SELECT music_featured_id FROM '.$this->CFG['db']['tbl']['music_featured'].
  2529. ' WHERE '.$condition;
  2530. $stmt = $this->dbObj->Prepare($sql);
  2531. $rs = $this->dbObj->Execute($stmt, $value);
  2532. if (!$rs)
  2533. trigger_error($this->dbObj->ErrorNo().' '.
  2534. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2535.  
  2536. if(!$returnType)
  2537. return $rs->PO_RecordCount();
  2538. else
  2539. return $rs;
  2540. }
  2541.  
  2542. /**
  2543. * MusicHandler::deleteFromFeatured()
  2544. *
  2545. * @param mixed $displayMsg
  2546. * @return void
  2547. */
  2548. public function deleteFromFeatured($displayMsg)
  2549. {
  2550. //Start delete music featured Music activity..
  2551. $sql = 'SELECT mf.music_featured_id, mf.user_id as featured_user_id, m.user_id '.
  2552. ' FROM '.$this->CFG['db']['tbl']['music_featured'].' as mf, '.
  2553. $this->CFG['db']['tbl']['users'].' as u, '.$this->CFG['db']['tbl']['music'].' as m '.
  2554. ' WHERE u.user_id = mf.user_id AND mf.music_id = m.music_id AND mf.user_id = '.
  2555. $this->dbObj->Param('user_id').' AND mf.music_id = '.$this->dbObj->Param('music_id');
  2556.  
  2557. $fields_value_arr = array($this->CFG['user']['user_id'], $this->fields_arr['music_id']);
  2558.  
  2559. $stmt = $this->dbObj->Prepare($sql);
  2560. $rs = $this->dbObj->Execute($stmt, $fields_value_arr);
  2561. if (!$rs)
  2562. trigger_error($this->dbObj->ErrorNo().' '.
  2563. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2564.  
  2565. $row = $rs->FetchRow();
  2566. if(!empty($row))
  2567. {
  2568. $activity_arr = $row;
  2569. $activity_arr['action_key'] = 'delete_music_featured';
  2570. $musicActivityObj = new MusicActivityHandler();
  2571. $musicActivityObj->addActivity($activity_arr);
  2572. }
  2573. //end
  2574. $sql = 'DELETE FROM '.$this->CFG['db']['tbl']['music_featured'].
  2575. ' WHERE user_id='.$this->dbObj->Param('user_id');
  2576.  
  2577. $stmt = $this->dbObj->Prepare($sql);
  2578. $rs = $this->dbObj->Execute($stmt, array($this->CFG['user']['user_id']));
  2579. if (!$rs)
  2580. trigger_error($this->dbObj->ErrorNo().' '.
  2581. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2582.  
  2583. if($this->dbObj->Affected_Rows())
  2584. {
  2585. $sql = 'UPDATE '.$this->CFG['db']['tbl']['music'].' SET total_featured = total_featured-1'.
  2586. ' WHERE music_id='.$this->dbObj->Param('music_id');
  2587. $stmt = $this->dbObj->Prepare($sql);
  2588.  
  2589. $rs = $this->dbObj->Execute($stmt, array($this->fields_arr['music_id']));
  2590. if (!$rs)
  2591. trigger_error($this->dbObj->ErrorNo().' '.
  2592. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2593.  
  2594. if($displayMsg)
  2595. echo $this->LANG['viewmusic_featured_deleted_successfully'];
  2596. }
  2597. }
  2598.  
  2599. /**
  2600. * MusicHandler::chkMusicFeaturedAlreadyAdded()
  2601. *
  2602. * @return boolean
  2603. */
  2604. public function chkMusicFeaturedAlreadyAdded()
  2605. {
  2606. $sql = 'SELECT * FROM '. $this->CFG['db']['tbl']['music_featured'].' WHERE user_id='.$this->dbObj->Param('user_id');
  2607. $stmt = $this->dbObj->Prepare($sql);
  2608. $rs = $this->dbObj->Execute($stmt, array($this->CFG['user']['user_id']));
  2609. if (!$rs)
  2610. trigger_error($this->dbObj->ErrorNo().' '.
  2611. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2612.  
  2613. if($rs->PO_RecordCount())
  2614. {
  2615. return true;
  2616. }
  2617. return false;
  2618. }
  2619.  
  2620.  
  2621. /**
  2622. * MusicHandler::getPlaylistTotalSong()
  2623. *
  2624. * @param mixed $playlist_id
  2625. * @return
  2626. */
  2627. public function getPlaylistTotalSong($playlist_id)
  2628. {
  2629. $sql = 'SELECT count(music_in_playlist_id) AS total '.
  2630. 'FROM '.$this->CFG['db']['tbl']['music_in_playlist'].' as mpl JOIN '.$this->CFG['db']['tbl']['music'].' as m ON mpl.music_id=m.music_id'.', '.$this->CFG['db']['tbl']['users'] . ' as u '.
  2631. 'WHERE u.user_id = m.user_id AND m.music_status = \'Ok\' AND u.usr_status = \'Ok\' AND mpl.playlist_id = '.$playlist_id.' '.
  2632. 'AND (m.user_id = '.$this->CFG['user']['user_id'].' OR '.' m.music_access_type = \'Public\''.$this->getAdditionalQuery().') '.$this->getAdultQuery('m.', 'music').' ORDER BY mpl.order_id ASC';
  2633.  
  2634. $stmt = $this->dbObj->Prepare($sql);
  2635. $rs = $this->dbObj->Execute($stmt);
  2636. if (!$rs)
  2637. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2638.  
  2639. $row = $rs->FetchRow();
  2640. return $row['total'];
  2641. }
  2642.  
  2643. /**
  2644. * MusicHandler::populateMusicJsVars()
  2645. *
  2646. * @return void
  2647. */
  2648. public function populateMusicJsVars()
  2649. {
  2650. echo '<script type="text/javascript" language="javascript">';
  2651. echo 'var play_songs_playlist_player_url = "'.$this->playSongsUrl.'";
  2652. var play_quickMix_url = "'.$this->playQuickMixUrl.'";
  2653. var qucikmix_added_already = "'.$this->LANG['common_quickmix_added_already'].'";
  2654. var hidden_player_not_loaded = "'.$this->LANG['common_msg_player_not_loaded'].'";
  2655. var volume_control_enabled_help_tip = "'.$this->LANG['common_volume_help_tip_enabled'].'";
  2656. var volume_control_disabled_help_tip = "'.$this->LANG['common_volume_help_tip_disabled'].'";
  2657. var quickMix_url = "'.$this->quickMixUrl.'";
  2658. var save_volume_url = "'.$this->saveVolumeUrl.'";
  2659. var LANG_VOLUME_MUTE = "'.$this->LANG['common_volume_mute'].'";
  2660. var LANG_VOLUME_UNMUTE = "'.$this->LANG['common_volume_unmute'].'";
  2661. //SETTING PLAYER VOLUME TO DEFAULT VALUE
  2662. playlist_player_volume = '.$_SESSION['music_global_voulme'].';
  2663. playlist_player_volume_mute_cur = '.$_SESSION['music_global_voulme'].';';
  2664.  
  2665. /*if($_SESSION['music_global_voulme'] == 0)
  2666. echo 'playlist_player_volume_mute_prev = 100;';*/
  2667. echo 'var volume_help_tip_top_pos = '.$this->CFG['admin'][$this->CFG['html']['template']['default']]['musics']['volume_helptip_info_top'].';';
  2668. echo 'var volume_help_tip_left_pos = '.$this->CFG['admin'][$this->CFG['html']['template']['default']]['musics']['volume_helptip_info_left'].';';
  2669. echo 'var volume_iframe_help_tip_top_pos = '.$this->CFG['admin'][$this->CFG['html']['template']['default']]['musics']['volume_iframe_helptip_info_top'].';';
  2670. echo 'var volume_iframe_help_tip_left_pos = '.$this->CFG['admin'][$this->CFG['html']['template']['default']]['musics']['volume_iframe_helptip_info_left'].';';
  2671.  
  2672.  
  2673. echo '//Quick Mix JS ARRAY';
  2674. foreach($this->quick_mix_id_arr as $quick_mix)
  2675. {
  2676. echo 'quick_mix_music_id_arr.push('.$quick_mix.');';
  2677. }
  2678. echo 'quickMixPopupWindow = eval('.$this->quick_mix_window_name.');';
  2679. echo '</script>';
  2680. }
  2681.  
  2682.  
  2683. public function chkIsLocalServer()
  2684. {
  2685. $server_url = $this->fields_arr['music_server_url'];
  2686. if(strstr($server_url,$this->CFG['site']['url']))
  2687. {
  2688. $server_url = str_replace($this->CFG['site']['url'],'',$server_url);
  2689. if(trim($server_url)=='')
  2690. {
  2691. return true;
  2692. }
  2693. }
  2694. return false;
  2695. }
  2696.  
  2697.  
  2698. public function getOtherFormatTotalDownload($music_type='mp3',$music_id=0)
  2699. {
  2700. $sql = ' SELECT count(music_id) count FROM '.$this->CFG['db']['tbl']['music_other_format_downloads'].' WHERE music_id=\''.$music_id.'\' AND music_type=\''.$music_type.'\' ';
  2701. $stmt = $this->dbObj->Prepare($sql);
  2702. $rs = $this->dbObj->Execute($stmt);
  2703. if (!$rs)
  2704. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2705. $row = $rs->FetchRow();
  2706. return $row['count'];
  2707. }
  2708.  
  2709.  
  2710. public function incrementOtherFormatTotalDownload($music_type='mp3',$music_id=0)
  2711. {
  2712. if($this->getOtherFormatTotalDownload($music_type,$music_id))
  2713. $sql=' UPDATE '.$this->CFG['db']['tbl']['music_other_format_downloads'].' SET total_downloads=total_downloads+1 '.
  2714. ' WHERE music_id=\''.$music_id.'\' AND music_type=\''.$music_type.'\' ';
  2715. else
  2716. $sql=' INSERT INTO '.$this->CFG['db']['tbl']['music_other_format_downloads'].' SET total_downloads=1, music_id=\''.$music_id.'\', music_type=\''.$music_type.'\' ';
  2717. $stmt = $this->dbObj->Prepare($sql);
  2718. $rs = $this->dbObj->Execute($stmt);
  2719. if (!$rs)
  2720. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2721. }
  2722.  
  2723. /**
  2724. * MusicHandler::getMusicPlayingTime()
  2725. *
  2726. * @param mixed $text_arr
  2727. * @return time
  2728. */
  2729. public function getMusicPlayingTime($text_arr)
  2730. {
  2731. $mname = $text_arr;
  2732. $duration = false;
  2733.  
  2734. if($this->CFG['admin']['musics']['playing_time_mp3info'])
  2735. {
  2736. $duration = exec($this->CFG['admin']['audio']['mp3info_path'].' -p "%S" '.$mname);
  2737. }
  2738.  
  2739. if(!$duration)
  2740. {
  2741. exec($this->CFG['admin']['video']['mplayer_path'].' -vo null -ao null -frames 0 -identify '.$mname, $p);
  2742. while(list($k,$v)=each($p))
  2743. {
  2744. if($length = strstr($v,'ID_LENGTH='))
  2745. break;
  2746. }
  2747.  
  2748. $lx = explode("=",$length);
  2749. $duration = @$lx[1];
  2750. }
  2751. $hour = floor($duration/(60*60));
  2752. $min = floor(($duration%(60*60))/60);
  2753. $sec = floor(($duration%(60*60))%60);
  2754. $hour = str_pad($hour, 2, '0', STR_PAD_LEFT);
  2755. $min = str_pad($min, 2, '0', STR_PAD_LEFT);
  2756. $sec = str_pad($sec, 2, '0', STR_PAD_LEFT);
  2757. return $hour.':'.$min.':'.$sec;
  2758. /*foreach($text_arr as $val)
  2759. {
  2760. if (substr(trim($val), 0, 13) != 'Video stream:')
  2761. continue;
  2762. $str = $val;
  2763. }
  2764. if(isset($str))
  2765. {
  2766. $str = substr($str, 0, strpos($str, 'secs'));
  2767. $str = str_replace(' ', '&', trim($str));
  2768. $str = round(substr(strrchr($str, "&"), 1));
  2769. $min = floor($str/60);
  2770. $min = str_pad($min, 2, '0', STR_PAD_LEFT);
  2771. $sec = $str%60;
  2772. $sec = strlen($sec)>2?substr($sec, 0,2):str_pad($sec, 2, '0', STR_PAD_LEFT);
  2773. return $min.':'.$sec;
  2774. }
  2775. else
  2776. return '00:00';*/
  2777. }
  2778.  
  2779. /**
  2780. * MusicHandler::fmtMusicPlayingTime()
  2781. *
  2782. * @param time $playing_time
  2783. * @param minutesFmt value as boolean
  2784. * @return time
  2785. */
  2786. public function fmtMusicPlayingTime($playing_time, $minutesFmt = false)
  2787. {
  2788. if(empty($playing_time))
  2789. return '';
  2790.  
  2791. $playing_time_arr = explode(':', $playing_time);
  2792. $formatted_playing_time = '';
  2793.  
  2794. if($playing_time_arr[0] != 0 && $minutesFmt == false)
  2795. $formatted_playing_time = $playing_time_arr[0].':';
  2796. elseif($playing_time_arr[0] != 0 && $minutesFmt == true)
  2797. $playing_time_arr[1] = $playing_time_arr[1]+($playing_time_arr[0]*60);
  2798.  
  2799. $formatted_playing_time .= $playing_time_arr[1].':'.$playing_time_arr[2];
  2800. return $formatted_playing_time;
  2801. }
  2802. /**
  2803. * MusicHandler::getEmailAddressOfRelation()
  2804. *
  2805. * @param mixed $value
  2806. * @return
  2807. */
  2808. public function getEmailAddressOfRelation($value)
  2809. {
  2810. $relation_id = $value?$value:0;
  2811. $sql = 'SELECT u.email FROM '.$this->CFG['db']['tbl']['friends_relation'].' AS fr,'.
  2812. ' '.$this->CFG['db']['tbl']['friends_list'].' AS fl LEFT JOIN '.$this->CFG['db']['tbl']['users'].' AS u'.
  2813. ' ON (u.user_id = IF(fl.owner_id='.$this->dbObj->Param('owner_id').',fl.friend_id, fl.owner_id)'.
  2814. ' AND u.usr_status=\'Ok\' ) WHERE (fr.relation_id IN('.$relation_id.') AND fl.id=fr.friendship_id)';
  2815.  
  2816. $stmt = $this->dbObj->Prepare($sql);
  2817. $rs = $this->dbObj->Execute($stmt, array($this->CFG['user']['user_id']));
  2818. if (!$rs)
  2819. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2820.  
  2821. if($rs->PO_RecordCount())
  2822. {
  2823. while($row = $rs->FetchRow())
  2824. {
  2825. $value = trim($row['email']);
  2826. $this->EMAIL_ADDRESS[] = $value;
  2827. }
  2828. }
  2829. return true;
  2830. }
  2831.  
  2832. /**
  2833. * MusicHandler::getMusicOwnerId()
  2834. *
  2835. * @param integer $music_id
  2836. * @return integer
  2837. */
  2838. public function getMusicOwnerId($music_id)
  2839. {
  2840. $sql = 'SELECT user_id FROM '.$this->CFG['db']['tbl']['music'].' '.
  2841. 'WHERE music_id ='.$this->dbObj->Param('music_id');
  2842.  
  2843. $stmt = $this->dbObj->Prepare($sql);
  2844. $rs = $this->dbObj->Execute($stmt, array($music_id));
  2845. if (!$rs)
  2846. trigger_error($this->dbObj->ErrorNo().' '.
  2847. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2848.  
  2849. if($row = $rs->FetchRow())
  2850. {
  2851. return $row['user_id'];
  2852. }
  2853. return false;
  2854.  
  2855. }
  2856.  
  2857. /**
  2858. * MusicHandler::chkIsAvailMusicFormat()
  2859. *
  2860. * @param string $music_type
  2861. * @param integer $music_id
  2862. * @return
  2863. */
  2864. public function chkIsAvailMusicFormat($music_type='mp3',$music_id=0)
  2865. {
  2866. $this->sql_condition = 'm.music_status=\'Ok\' AND m.music_encoded_status=\'Yes\' AND m.music_id=\''.addslashes($this->fields_arr['music_id']).'\' AND (m.user_id = '.$this->CFG['user']['user_id'].' OR m.music_access_type = \'Public\''.$this->getAdditionalQuery('m.').')';
  2867.  
  2868. $sql = 'SELECT m.music_thumb_ext, m.music_available_formats, m.music_server_url, m.music_title,music_flv_url, flv_upload_type'.
  2869. ' FROM '.$this->CFG['db']['tbl']['music'].' as m'.
  2870. ' WHERE '.$this->sql_condition.' LIMIT 0,1';
  2871.  
  2872. $stmt = $this->dbObj->Prepare($sql);
  2873. $rs = $this->dbObj->Execute($stmt);
  2874. if (!$rs)
  2875. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  2876. if($row = $rs->FetchRow())
  2877. {
  2878. if($row['music_thumb_ext']==$music_type)
  2879. {
  2880. return true;
  2881. }
  2882. if($avail_arr=explode(',',$row['music_available_formats']) and
  2883. in_array($music_type,$avail_arr) and $this->chkIsDownloadVideoFormat($music_type))
  2884. return true;
  2885.  
  2886. }
  2887. return false;
  2888. }
  2889.  
  2890. public function chkIsDownloadMusicFormat($music_type='mp3')
  2891. {
  2892. if($this->CFG['admin']['musics']['music_other_formats_enabled'] and isset($this->CFG['admin']['musics']['music_download_formats']) and is_array($this->CFG['admin']['musics']['music_download_formats']) and
  2893. in_array($music_type, $this->CFG['admin']['musics']['music_download_formats']))
  2894. return true;
  2895.  
  2896. return false;
  2897. }
  2898.  
  2899. public function chkPrivateSong($music_id)
  2900. {
  2901. $sql = 'SELECT m.music_id FROM '.$this->CFG['db']['tbl']['music'].' as m'.
  2902. ' WHERE m.music_id= '.$this->dbObj->Param('music_id').' AND (m.user_id = '.
  2903. $this->CFG['user']['user_id'].' OR m.music_access_type = \'Public\''.
  2904. $this->getAdditionalQuery().') '.$this->getAdultQuery('m.', 'music');
  2905.  
  2906. $stmt = $this->dbObj->Prepare($sql);
  2907. $rs = $this->dbObj->Execute($stmt, array($music_id));
  2908. if (!$rs)
  2909. trigger_error($this->dbObj->ErrorNo().' '.
  2910. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2911.  
  2912. return $rs->PO_RecordCount();
  2913. }
  2914.  
  2915. /**
  2916. * MusicHandler::chkValidArtistList()
  2917. *
  2918. * @param mixed $field_name
  2919. * @param string $tag
  2920. * @param string $err_tip
  2921. * @return
  2922. */
  2923. public function chkValidArtistList($field_name, $err_tip = '')
  2924. {
  2925. $artist_arr = explode(',', $this->fields_arr[$field_name]);
  2926. $artist_arr = array_unique($artist_arr);
  2927. $key = array_search('', $artist_arr);
  2928. if($key)
  2929. unset($artist_arr[$key]);
  2930.  
  2931. $err_tip = str_replace('{min}', $this->CFG['fieldsize']['music_artist']['min'], $err_tip);
  2932. $err_tip = str_replace('{max}', $this->CFG['fieldsize']['music_artist']['max'], $err_tip);
  2933.  
  2934. foreach($artist_arr as $key=>$value)
  2935. {
  2936. $value = trim($value);
  2937. if(function_exists('mb_strlen'))
  2938. {
  2939. //decoded first since this adds the length of the html entities too done while sanitizing
  2940. $strLength = mb_strlen(htmlspecialchars_decode($value),'utf-8');
  2941. }
  2942. else
  2943. {
  2944. $strLength = strlen(htmlspecialchars_decode($value));
  2945. }
  2946.  
  2947. if(($strLength<$this->CFG['fieldsize']['music_artist']['min']) or ($strLength>$this->CFG['fieldsize']['music_artist']['max']))
  2948. {
  2949. $this->setFormFieldErrorTip($field_name,$err_tip);
  2950. return false;
  2951. }
  2952. }
  2953. $this->fields_arr[$field_name] = implode(',', $artist_arr);
  2954. return true;
  2955. }
  2956.  
  2957. /**
  2958. * MusicHandler::populateMusicChannel()
  2959. * FOR LISTING CATEGORY IN MENU
  2960. * @param string $type
  2961. * @return
  2962. */
  2963. public function populateMusicChannel($type = 'General')
  2964. {
  2965. //Music catagory List order by Priority on / off features
  2966. if($this->CFG['admin']['musics']['music_category_list_priority'])
  2967. $order_by = 'priority';
  2968. else
  2969. $order_by = 'music_category_name';
  2970.  
  2971. $sql = 'SELECT music_category_id, music_category_name FROM '.
  2972. $this->CFG['db']['tbl']['music_category'].
  2973. ' WHERE parent_category_id=0 AND music_category_status=\'Yes\''.
  2974. ' AND music_category_type='.$this->dbObj->Param('music_category_type').
  2975. ' AND allow_post=\'Yes\' ORDER BY '.$order_by.' ASC ';
  2976.  
  2977. $stmt = $this->dbObj->Prepare($sql);
  2978. $rs = $this->dbObj->Execute($stmt, array($type));
  2979. if (!$rs)
  2980. trigger_error($this->dbObj->ErrorNo().' '.
  2981. $this->dbObj->ErrorMsg(), E_USER_ERROR);
  2982.  
  2983. if(!$rs->PO_RecordCount())
  2984. return;
  2985.  
  2986. $names = array('music_category_name');
  2987. $value = 'music_category_id';
  2988. $inc =0;
  2989. while($row = $rs->FetchRow())
  2990. {
  2991. $channel[$inc]['id'] = $row['music_category_id'];
  2992. $channel[$inc]['name']= wordWrap_mb_Manual($row['music_category_name'], $this->CFG['admin']['musics']['member_channel_length'],
  2993. $this->CFG['admin']['musics']['member_channel_total_length']);
  2994. $inc++;
  2995. }
  2996.  
  2997. return $channel;
  2998. }
  2999.  
  3000. /**
  3001. * musicHandler::getPlaylistImageName()
  3002. *
  3003. * @param integer $playlist_id
  3004. * @return array
  3005. */
  3006. public function getPlaylistImageName($playlist_id)
  3007. {
  3008. $sql = 'SELECT m.music_id, m.music_server_url, m.music_thumb_ext, mfs.file_name, m.thumb_width, m.thumb_height FROM '.$this->CFG['db']['tbl']['music_in_playlist'].' '.
  3009. 'AS mip JOIN '.$this->CFG['db']['tbl']['music'].' AS m ON m.music_id=mip.music_id JOIN '.$this->CFG['db']['tbl']['music_files_settings'].' AS mfs '.
  3010. 'ON mfs.music_file_id = m.thumb_name_id, '.$this->CFG['db']['tbl']['users'].' AS u WHERE mip.playlist_id ='.$this->dbObj->Param('playlist_id').' '.
  3011. ' AND m.user_id=u.user_id AND u.usr_status = \'Ok\' AND m.music_status = \'Ok\''.$this->getAdultQuery('m.', 'music').' AND '.
  3012. ' m.music_access_type = \'Public\' AND m.music_thumb_ext!=" " LIMIT 0,1';
  3013.  
  3014. $stmt = $this->dbObj->Prepare($sql);
  3015. $rs = $this->dbObj->Execute($stmt, array($playlist_id));
  3016. if (!$rs)
  3017. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  3018.  
  3019. $row = $rs->FetchRow();
  3020. return $row;
  3021. }
  3022.  
  3023. /**
  3024. * MusicHandler::playlistCreateActivity()
  3025. *
  3026. * @param mixed $playlist_id
  3027. * @return
  3028. */
  3029. public function playlistCreateActivity($playlist_id)
  3030. {
  3031. //Start playlist create Music playlist activity..
  3032. $sql = 'SELECT pl.playlist_id, u.user_name, pl.playlist_name, pl.user_id '.
  3033. 'FROM '.$this->CFG['db']['tbl']['music_playlist'].' as pl, '.$this->CFG['db']['tbl']['users'].' as u '.
  3034. 'WHERE u.user_id = pl.user_id AND pl.playlist_id = \''.$this->dbObj->Param('playlist_id').'\'';
  3035.  
  3036. $stmt = $this->dbObj->Prepare($sql);
  3037. $rs = $this->dbObj->Execute($stmt, array($playlist_id));
  3038. if (!$rs)
  3039. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  3040.  
  3041. $row = $rs->FetchRow();
  3042. $activity_arr = $row;
  3043. $activity_arr['action_key'] = 'playlist_create';
  3044. $createplaylist_image_array = $this->getPlaylistImageName($playlist_id);
  3045. if(empty($createplaylist_image_array))
  3046. {
  3047. $activity_arr['music_id'] = '';
  3048. $activity_arr['music_server_url'] = '';
  3049. $activity_arr['music_thumb_ext'] = '';
  3050. }
  3051. else
  3052. {
  3053. $activity_arr['music_id'] = $createplaylist_image_array['music_id'];;
  3054. $activity_arr['music_server_url'] = $createplaylist_image_array['music_server_url'];
  3055. $activity_arr['music_thumb_ext'] = $createplaylist_image_array['music_thumb_ext'];
  3056. }
  3057. $playlistActivityObj = new MusicActivityHandler();
  3058. $playlistActivityObj->addActivity($activity_arr);
  3059. //end
  3060. }
  3061. public function getTagsLinkForPlaylist($playlist_tags,$taglimit,$playlist_id,$tag_serach_word='')
  3062. {
  3063. // change the function for display the tags with some more...
  3064. global $smartyObj;
  3065. $tags_arr = explode(' ', $playlist_tags);
  3066. if(count($tags_arr)>$taglimit)
  3067. {
  3068. $playlist_tag_size=$taglimit;
  3069. }
  3070. else
  3071. {
  3072. $playlist_tag_size=count($tags_arr);
  3073. }
  3074. for($i=0;$i<$playlist_tag_size;$i++)
  3075. {
  3076. if($i<8)
  3077. {
  3078. if(strlen($tags_arr[$i]) > 5 and strlen($tags_arr[$i]) > 5+3)
  3079. $getTagsLink_arr[$i]['title_tag_name'] = $getTagsLink_arr[$i]['wordWrap_mb_ManualWithSpace_tag_name'] = wordWrap_mb_Manual($tags_arr[$i], 5,5,true);
  3080. else
  3081. $getTagsLink_arr[$i]['title_tag_name'] = $getTagsLink_arr[$i]['wordWrap_mb_ManualWithSpace_tag_name'] = $tags_arr[$i];
  3082. if(!empty($tag_serach_word))
  3083. $getTagsLink_arr[$i]['wordWrap_mb_ManualWithSpace_tag_name'] = highlightWords($getTagsLink_arr[$i]['wordWrap_mb_ManualWithSpace_tag_name'], $tag_serach_word);
  3084. $getTagsLink_arr[$i]['tag_url'] =getUrl('musicplaylist', '?pg=playlistnew&tags='.$tags_arr[$i], 'playlistnew/?tags='.$tags_arr[$i], '', 'music');
  3085. if($i%2==0)
  3086. {
  3087. $getTagsLink_arr[$i]['class']='clsTagsDefalult';
  3088. }
  3089. else
  3090. {
  3091. $getTagsLink_arr[$i]['class']='clsTagsAlternate';
  3092. }
  3093. }
  3094. }
  3095. $smartyObj->assign('getTagsLink_arr', $getTagsLink_arr);
  3096. setTemplateFolder('general/', 'music');
  3097. $smartyObj->display('populateTagsLinks.tpl');
  3098. }
  3099. /**
  3100. * MusicHandler::getMyFeaturedPlaylist()
  3101. *
  3102. * @param mixed $user_id
  3103. * @return
  3104. */
  3105. public function getMyFeaturedPlaylist($user_id)
  3106. {
  3107. $sql='SELECT pl.playlist_id FROM music_playlist_featured as fpl LEFT JOIN music_playlist as pl ON fpl.playlist_id=pl.playlist_id, users as u WHERE fpl.user_id = '.$this->dbObj->Param('user_id').' AND
  3108. pl.playlist_status=\'Yes\' AND u.usr_status=\'Ok\' LIMIT 0,1';
  3109. $stmt = $this->dbObj->Prepare($sql);
  3110. $rs = $this->dbObj->Execute($stmt, array($user_id));
  3111. if (!$rs)
  3112. trigger_error($this->dbObj->ErrorNo().' '.$this->dbObj->ErrorMsg(), E_USER_ERROR);
  3113. $row = $rs->FetchRow();
  3114. $playlist_id=$row['playlist_id'];
  3115. if($playlist_id!='')
  3116. {
  3117. $getMyFeaturedPlaylistUrl= getUrl('viewplaylist', '?playlist_id='.$playlist_id.'&amp;title=', $playlist_id.'/', '','music');
  3118. return $getMyFeaturedPlaylistUrl;
  3119. }
  3120. else
  3121. {
  3122. return '';
  3123. }
  3124. }
  3125. /**
  3126. * MusicHandler::getTagsForMusicList()
  3127. * Display tags
  3128. * @param mixed $music_tags,$taglimit
  3129. * @param tag_serach_word is used for highlight the search_tag_word.
  3130. * @return
  3131. */
  3132. public function getMusicTagsLinks($music_tags,$taglimit,$tag_serach_word='')
  3133. {
  3134. // change the function for display the tags with some more...
  3135. global $smartyObj;
  3136. $tags_arr = explode(' ', $music_tags);
  3137. if(count($tags_arr)>$taglimit)
  3138. {
  3139. $music_tag_size=$taglimit;
  3140. }
  3141. else
  3142. {
  3143. $music_tag_size=count($tags_arr);
  3144. }
  3145. for($i=0;$i<$music_tag_size;$i++)
  3146. {
  3147. if($i<8)
  3148. {
  3149. if(strlen($tags_arr[$i]) > 5 and strlen($tags_arr[$i]) > 5+3)
  3150. $getTagsLink_arr[$i]['title_tag_name'] = $getTagsLink_arr[$i]['wordWrap_mb_ManualWithSpace_tag_name'] = wordWrap_mb_Manual($tags_arr[$i], 5,5,true);
  3151. else
  3152. $getTagsLink_arr[$i]['title_tag_name'] = $getTagsLink_arr[$i]['wordWrap_mb_ManualWithSpace_tag_name'] = $tags_arr[$i];
  3153. if(!empty($tag_serach_word))
  3154. $getTagsLink_arr[$i]['wordWrap_mb_ManualWithSpace_tag_name'] = highlightWords($getTagsLink_arr[$i]['wordWrap_mb_ManualWithSpace_tag_name'], $tag_serach_word);
  3155. $getTagsLink_arr[$i]['tag_url'] = getUrl('musiclist', '?pg=musicnew&tags='.$tags_arr[$i], 'musicew/?tags='.$tags_arr[$i], '', 'music');
  3156. if($i%2==0)
  3157. {
  3158. $getTagsLink_arr[$i]['class']='clsTagsDefalult';
  3159. }
  3160. else
  3161. {
  3162. $getTagsLink_arr[$i]['class']='clsTagsAlternate';
  3163. }
  3164. }
  3165. }
  3166. $smartyObj->assign('getTagsLink_arr', $getTagsLink_arr);
  3167. setTemplateFolder('general/', 'music');
  3168. $smartyObj->display('populateTagsLinks.tpl');
  3169. }
  3170.  
  3171. public function generalPopulateArrayPlaylist($list, $highlight_value='', $playlist_id='')
  3172. {
  3173. foreach($list as $key=>$value)
  3174. {
  3175. $disabled = in_array($key,$playlist_id)?'disabled="disabled"':'';
  3176. $selected = trim($highlight_value) == trim($key)?' selected="selected"':'';
  3177. ?>
  3178. <option value="<?php echo $key;?>"<?php echo $selected;?><?php echo $disabled;?>><?php echo $value;?></option>
  3179. <?php
  3180. }
  3181. }
  3182.  
  3183. /**
  3184. * musicHandler::getPlaylistIdInMusic()
  3185. *
  3186. * @param string $page
  3187. * @return
  3188. */
  3189. public function getPlaylistIdInMusic($music_id)
  3190. {
  3191. if(strstr($music_id,','))
  3192. return true;
  3193.  
  3194. global $smartyObj;
  3195. $sql = 'SELECT playlist_id FROM '.
  3196. $this->CFG['db']['tbl']['music_in_playlist'].
  3197. ' WHERE music_id = '.$this->dbObj->Param('music_id');
  3198. $stmt = $this->dbObj->Prepare($sql);
  3199. $rs = $this->dbObj->Execute($stmt,array($music_id));
  3200. if (!$rs)
  3201. trigger_db_error($this->dbObj);
  3202. $playlist = array();
  3203. while($row = $rs->FetchRow())
  3204. {
  3205. $playlist[$row['playlist_id']] = $row['playlist_id'];
  3206. }
  3207. $smartyObj->assign('playlist', $playlist);
  3208.  
  3209. }
  3210.  
  3211. public function populateMusicListHidden($hidden_field)
  3212. {
  3213. foreach($hidden_field as $hidden_name)
  3214. {
  3215.  
  3216. if($hidden_name == 'action')
  3217. $hidden_name = 'action_new';
  3218.  
  3219. ?>
  3220. <input type="hidden" name="<?php echo $hidden_name;?>" value="<?php echo isset($this->fields_arr[$hidden_name])?$this->fields_arr[$hidden_name]:'';?>" />
  3221. <?php
  3222. }
  3223. }
  3224.  
  3225. }
  3226.  
  3227. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement