BxDolXMLRPCFriends.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. class BxDolXMLRPCFriends
  3. {
  4. function getFriends($sUser, $sPwd, $sNick, $sLang)
  5. {
  6. $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick);
  7. if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  8. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  9. BxDolXMLRPCUtil::setLanguage ($sLang);
  10. $sFriendsSQL = "
  11. SELECT `p`.*, `f`.`ID`
  12. FROM (
  13. SELECT `ID` AS `ID` FROM `sys_friend_list` WHERE `Profile` = '{$iIdProfile}' AND `Check` =1
  14. UNION
  15. SELECT `Profile` AS `ID` FROM `sys_friend_list` WHERE `ID` = '{$iIdProfile}' AND `Check` =1
  16. ) AS `f`
  17. INNER JOIN `Profiles` AS `p` ON `p`.`ID` = `f`.`ID`
  18. ORDER BY p.`Avatar` DESC
  19. ";
  20. $r = db_res($sFriendsSQL);
  21. /*$r = db_res ("SELECT `Profiles`.* FROM `sys_friend_list`
  22. LEFT JOIN `Profiles` ON (`Profiles`.`ID` = `sys_friend_list`.`Profile` AND `sys_friend_list`.`ID` = '$iIdProfile' OR `Profiles`.`ID` = `sys_friend_list`.`ID` AND `sys_friend_list`.`Profile` = '$iIdProfile')
  23. WHERE (`sys_friend_list`.`Profile` = '$iIdProfile' OR `sys_friend_list`.`ID` = '$iIdProfile') AND `sys_friend_list`.`Check` = '1'
  24. ORDER BY `Profiles`.`Avatar` DESC");*/
  25. $aProfiles = array ();
  26. while ($aRow = mysql_fetch_array ($r))
  27. $aProfiles[] = new xmlrpcval(BxDolXMLRPCUtil::fillProfileArray($aRow, 'thumb'), 'struct');
  28. return new xmlrpcval ($aProfiles, "array");
  29. }
  30. function getFriendRequests($sUser, $sPwd, $sLang)
  31. {
  32. if (!($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  33. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  34. BxDolXMLRPCUtil::setLanguage ($sLang);
  35. $r = db_res ("
  36. SELECT `Profiles`.* FROM `sys_friend_list`
  37. LEFT JOIN `Profiles` ON `Profiles`.`ID` = `sys_friend_list`.`ID`
  38. WHERE `sys_friend_list`.`Profile` = $iId AND `Check` = 0
  39. ORDER BY `Profiles`.`NickName` ASC");
  40. $aProfiles = array ();
  41. while ($aRow = mysql_fetch_array ($r))
  42. $aProfiles[] = new xmlrpcval(BxDolXMLRPCUtil::fillProfileArray($aRow, 'thumb'), 'struct');
  43. return new xmlrpcval ($aProfiles, "array");
  44. }
  45. function declineFriendRequest($sUser, $sPwd, $sNick)
  46. {
  47. $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick);
  48. if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  49. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  50. require_once( BX_DIRECTORY_PATH_ROOT . 'templates/tmpl_' . $GLOBALS['tmpl'] . '/scripts/BxTemplCommunicator.php');
  51. $aCommunicatorSettings = array ('member_id' => $iId);
  52. $aMembersList = array ($iIdProfile);
  53. $oCommunicator = &new BxTemplCommunicator('communicator_page', $aCommunicatorSettings);
  54. $oCommunicator->execFunction('_deleteRequest', 'sys_friend_list', $aMembersList);
  55. return new xmlrpcval ('ok');
  56. }
  57. function acceptFriendRequest($sUser, $sPwd, $sNick)
  58. {
  59. $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick);
  60. if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  61. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  62. require_once( BX_DIRECTORY_PATH_ROOT . 'templates/tmpl_' . $GLOBALS['tmpl'] . '/scripts/BxTemplCommunicator.php');
  63. $aCommunicatorSettings = array ('member_id' => $iId);
  64. $aMembersList = array ($iIdProfile);
  65. $oCommunicator = &new BxTemplCommunicator('communicator_page', $aCommunicatorSettings);
  66. $oCommunicator->execFunction('_acceptFriendInvite', 'sys_friend_list', $aMembersList);
  67. return new xmlrpcval ('ok');
  68. }
  69. function removeFriend($sUser, $sPwd, $sNick)
  70. {
  71. $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick);
  72. if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  73. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  74. require_once( BX_DIRECTORY_PATH_ROOT . 'templates/tmpl_' . $GLOBALS['tmpl'] . '/scripts/BxTemplCommunicator.php');
  75. $aCommunicatorSettings = array ('member_id' => $iId);
  76. $aMembersList = array ($iIdProfile);
  77. $oCommunicator = &new BxTemplCommunicator('communicator_page', $aCommunicatorSettings);
  78. $oCommunicator->execFunction( '_deleteRequest', 'sys_friend_list', $aMembersList, array(1, 1));
  79. return new xmlrpcval ('ok');
  80. }
  81. function addFriend($sUser, $sPwd, $sNick, $sLang)
  82. {
  83. $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick);
  84. if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  85. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  86. BxDolXMLRPCUtil::setLanguage ($sLang);
  87. ob_start();
  88. $_GET['action'] = '1';
  89. require_once( BX_DIRECTORY_PATH_ROOT . 'list_pop.php' );
  90. ob_end_clean();
  91. $sRet = PageListFriend ($iId, $iIdProfile);
  92. return new xmlrpcval (trim(strip_tags($sRet)));
  93. }
  94. }
  95. ?>