-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
105 lines (94 loc) · 6.15 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
-------------------------------------------------------------------------------
About
-------------------------------------------------------------------------------
PicMan (Picture Manager) application is a JavaScript based picture uploader
utility which leverages HTML5 filelist API and provides a real time upload
progress meter. As a fallback mechanism to browsers that does not support
HTML5 features, the app uses the legacy iframe based upload approach thus
simulating an AJAX behavior.
At the backend the app uses the eBay public API to upload pictures. The
operation is called UploadSiteHostedPictures, which provides numerous picture
upload options and returns a set of image URLs supporting different dimensions
with appropriate HTT headers. The entire documentation is available at
http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/UploadSiteHostedPictures.html
The JS APIs in the application are well documented for reference and given
below is the complete source file inventory explaining the various components
JavaScript:
-----------
1. utils.js - A JS utility class with helper functions used across all APIs
2. progressmeter.js - Creates a dynamic progress bar in the page working with
DOM and Styles
3. picuploader.js - The main engine class which does the actual image uploading
4. picmanager.js - The singleton manager class for the PicMan application
CSS:
----
1. picman.css - Styles the entire picman playing arena including picture holders
and progress meter
HTML (markup):
--------------
1. arena.php - Builds the HTML (markup) for the PicMan arena. The PHP variable
$PIC_COUNT controls the number of image containers to show in
the application
Server (Backend):
-----------------
1. eBayApi.php - The eBay API PHP wrapper to make the HTTP webservice call using
CURL and SimpleXML extensions
2. upload.php - The AJAX controller command which processes the request (image
data) based on upload type (XHR upload or iframe), validates and
calls the eBay public API UploadSiteHostedPictures to upload the
image and sends back the response as a serialized JSON string.
NOTE: The eBay API credentials should be set in the variables
$devID, $appID, $certID, $userToken in order for the API to work
Image:
------
1. image_edit_icons-v2.gif - A google sprite image containing all the icons for
the image control dashboard (zoom & delete)
Invoking the PicMan app is done by calling the PicManager as shown below
/*************************************************************************************************************/
PicManager.init({
MAX_LIMIT: 8, // Total number of pic placeholders
uploadForm: "file_upload_form", // Form element ID which contains the HTML file element
file: "picfile", // HTML file element ID
maskLayer: "mask", // The mask div element ID which creates a background mask during zoom and when upload is progressing
addPicLayer: "add", // The div element id which contains the Add Picture link and HTML file element
serverURL: "upload.php", // The AJAX server URL
errorImage: "no-pic-error.png", // Error image URL displayed when an error occurs during upload
dropBox: "dropBox", // The Div element ID of the drop box for drag & drop
dropText: "dropText", // The Div element ID wrapping the text mentioning the feature supports drag & drop
imageHash: null, // An array of image info objects, default null but when already uploaded images the object is set
// Format: [{thumbnailUrl: "http://xyz", mainUrl: "http://abc"}]
primaryIndex: 0, // The index of the image which should be made primary, default 0
startIndex: 0, // The start index in the arena, default 0 but when already uploaded images the index is set accordingly
// Below attributes are associated with every image and all IDs are indexed from 0
// For e.g. the pic container div ID at first location will be picContainer0 and so on
image: {
picContainer: "picContainer", // The container Div element ID of a picture
fileNameLayer: "fileName", // The Div element ID in the pic container which holds the file name
progressMeterLayer: "progressMeter", // The Div element ID which holds the progress meter elements
progressLayer: "progress", // The inner Div element ID of the progress meter which shows progress
percentLayer: "percentage", // The Div element ID showing the progress percentage
imageWrapper: "imageWrapper", // The Div element ID wrapping the thumbnail image
controlsLayer: "controls", // The Div element ID which contains the dashboard controls
overlayLayer: "overlay",// The Div element ID of the overlay for zooming an image
zoomLayer: "enlarge", // The Div element ID wrapping the zoom image
closeZoomLink: "closeZoomLink", // The anchor ID for the close link in overlay
zoomControl: "zoom", // The Div element ID for the zoom control
primaryControl: "primary", // The Div element ID for the make primary image control
deleteControl: "delete" // The Div element ID for the delete image control
}
});
/*************************************************************************************************************/
Deployment of the PicMan application is pretty straightforward. Please follow
the steps listed below
1. Register in http://developer.ebay.com/ to get access to eBay public APIs.
The registration process will generate the following credentials - Developer
Id, Application Id, Certificate Id and a eBay user token
2. Create a directory picman (any name should be ok) in Apache webroot and
download all the source files from https://github.com/senthilp/picman and dump
it into the directory
3. Edit the file upload.php and change the values of the variables $devID, $appID,
$certID, $userToken and replace them with eBay developer credentails
4. Restart Apache and hit http://localhost/picman/arena.php in browser. Wallah!
the picman application should be up and running
5. If there any eBay API issues please refer to the below URL for trouble shooting
http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/UploadSiteHostedPictures.html