HomeHelpTrac

source: trunk/xmlrpc/BxDolXMLRPCImages.php @ 15623

Revision 15623, 3.9 KB checked in by Alexander Trofimov, 4 months ago (diff)

Ticket #2674

Line 
1<?php
2
3class 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?>
Note: See TracBrowser for help on using the repository browser.