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