BxDolXMLRPCImages.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. class BxDolXMLRPCImages extends BxDolXMLRPCMedia
  3. {
  4. /*
  5. function getImages($sUser, $sPwd, $sNick)
  6. {
  7. $sProfileCat = BxDolService::call('bx_photos', 'get_profile_cat', array());
  8. return BxDolXMLRPCImages::getImagesInCategory($sUser, $sPwd, $sNick, $sProfileCat);
  9. }
  10. */
  11. function removeImage ($sUser, $sPwd, $iImageId)
  12. {
  13. if (!($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  14. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  15. if (BxDolService::call('photos', 'remove_object', array((int)$iImageId)))
  16. return new xmlrpcval ("ok");
  17. return new xmlrpcval ("fail");
  18. }
  19. function makeThumbnail ($sUser, $sPwd, $iImageId)
  20. {
  21. if (!($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  22. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  23. if (BxDolService::call('avatar', 'make_avatar_from_shared_photo_auto', array((int)$iImageId)))
  24. return new xmlrpcval ("ok");
  25. return new xmlrpcval ("fail");
  26. }
  27. function getImageAlbums ($sUser, $sPwd, $sNick)
  28. {
  29. $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick);
  30. if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  31. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  32. // create user's default album if there is no one
  33. if ($sUser == $sNick) {
  34. $sCaption = str_replace('{nickname}', $sUser, getParam('bx_photos_profile_album_name'));
  35. bx_import('BxDolAlbums');
  36. $oAlbum = new BxDolAlbums('bx_photos');
  37. $aData = array(
  38. 'caption' => $sCaption,
  39. 'location' => _t('_bx_photos_undefined'),
  40. 'owner' => $iId,
  41. 'AllowAlbumView' => BX_DOL_PG_ALL,
  42. );
  43. $oAlbum->addAlbum($aData);
  44. }
  45. return BxDolXMLRPCMedia::_getMediaAlbums ('photo', $iIdProfile, $iId, $iIdProfile == $iId);
  46. }
  47. function uploadImage ($sUser, $sPwd, $sAlbum, $binImageData, $iDataLength, $sTitle, $sTags, $sDesc)
  48. {
  49. if (!($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  50. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  51. if (!BxDolXMLRPCMedia::_isMembershipEnabledFor($iIdProfileViewer, 'BX_PHOTOS_ADD', true))
  52. return new xmlrpcval ("fail access");
  53. // write tmp file
  54. $sTmpFilename = BX_DIRECTORY_PATH_ROOT . "tmp/" . time() . '_' . $iId;
  55. $f = fopen($sTmpFilename, "wb");
  56. if (!$f)
  57. return new xmlrpcval ("fail fopen");
  58. if (!fwrite ($f, $binImageData, (int)$iDataLength))
  59. {
  60. fclose($f);
  61. return new xmlrpcval ("fail write");
  62. }
  63. fclose($f);
  64. // upload
  65. $aFileInfo = array();
  66. $aFileInfo['medTitle'] = $sTitle;
  67. $aFileInfo['medDesc'] = $sDesc;
  68. $aFileInfo['medTags'] = $sTags;
  69. $aFileInfo['Categories'] = array ($sAlbum);
  70. $aFileInfo['album'] = $sAlbum;
  71. $isUpdateThumb = (int)db_value("SELECT `Avatar` FROM `Profiles` WHERE `ID` = '$iId' LIMIT 1") ? false : true;
  72. if (BxDolService::call('photos', 'perform_photo_upload', array($sTmpFilename, $aFileInfo, $isUpdateThumb, $iId), 'Uploader'))
  73. return new xmlrpcval ("ok");
  74. else
  75. return new xmlrpcval ("fail upload");
  76. }
  77. function getImagesInAlbum($sUser, $sPwd, $sNick, $iAlbumId)
  78. {
  79. $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick);
  80. if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd)))
  81. return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
  82. return BxDolXMLRPCMedia::_getFilesInAlbum ('photos', $iIdProfile, $iId, (int)$iAlbumId);
  83. }
  84. }
  85. ?>