The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Bulk photo/gallery import script
Hey guys, I am trying to import thousands of existing photos into VB5. The images exist in folders/subfolders on the server. Anyone have a basic script to programmatically create a new gallery folder for a user and import a photo into it? I can probably figure it out from there if I had a sample to look at. Thanks in advance!
--------------- Added [DATE]1492107744[/DATE] at [TIME]1492107744[/TIME] --------------- A little more info as I keep trying to figure this out on my own - when I do this: Code:
$response = $api->callApi('content_gallery', 'add', array('data' => $data, 'options' => $options)); |
#2
|
||||
|
||||
How are you executing the api? You should be logged in to create gallery post unless you enable permissions for guests which I assume you don't want.
|
#3
|
|||
|
|||
Thanks! That helped me get past that issue. Now, I am getting this response when trying to add the image:
Code:
Array ( [errors] => Array ( [0] => Array ( [0] => unexpected_error [1] => Upload failed. PHP upload error: 0 ) ) ) Code:
// This line does add the node for the album $albumId = $api->callApi('content_gallery', 'add', array('data' => $data, 'options' => $options)); // Here, I get the info on a test file to try and add programatically $fileName = '/var/www/mydomain.com/gw/photos/Architectural/wallpaper-1st-id-arch.png'; $fileParts = pathinfo($fileName); $imageName = $fileParts['filename']; // I don't want to lose the original file, so I copy it into a tempfile, to simulate uploading it $tmpName = tempnam('/tmp', 'INC'); copy($fileName, '/tmp/' . $imageName); rename('/tmp/' . $imageName, $tmpName); $fileInfo = array(); $fileInfo['uploadFrom'] = 'profile'; $fileInfo['parentid'] = $albumId; $fileInfo['tmp_name'] = $tmpName; $fileInfo['name'] = $fileParts['basename']; $fileInfo['size'] = filesize($fileName); $fileInfo['type'] = 'image/png'; $photos = array($fileInfo); // Upload the file and add it $response = $api->callApi('content_attach', 'upload', array('photos' => $photos)); print_r($response); exit; --------------- Added [DATE]1492129123[/DATE] at [TIME]1492129123[/TIME] --------------- Ok, I got past that problem. I needed to just pass 'file' => $fileInfo and do away with the $photos bit I was trying. At any rate, it does "upload" the image, but now I need to somehow get it to show up in the gallery. I'm thinking I need to do something like this: Code:
$response = $api->callApi('content_photo', 'add', ..... ); --------------- Added [DATE]1492129263[/DATE] at [TIME]1492129263[/TIME] --------------- Tried this, but to no avail: Code:
$response = $api->callApi('content_photo', 'add', array($albumId, array('filedataid' => $response['filedataid']))); Code:
Array ( [errors] => Array ( [0] => Array ( [0] => invalid_data ) ) ) Also, I noticed that in the vb_filedata table, that it had resized my test image (scaled it down). Is there some way to prevent that? These need to stay in their native 1920x1080 resolution. Thanks! |
#4
|
||||
|
||||
In the Attachment Type Manager, you can configure the maximum width and height and filesize for each file extension.
|
#5
|
|||
|
|||
Any ideas on the actual call to "$api->callApi('content_photo' ...."? Is that the right call to use? If so, not sure what the arguments need to be.
I've also tried this, but to no avail: Code:
// Upload the file and add it $response = $api->callApi('content_attach', 'upload', array('file' => $fileInfo)); $data = array( 'parentId' => $albumId, 'filedataid' => $response['filedataid'], ); $response = $api->callApi('content_photo', 'add', array('data' => $data)); |
#6
|
|||
|
|||
Anyone?
|
#7
|
||||
|
||||
Take a look at the actionGallery() function in /includes/vb5/frontend/controller/createcontent.php. That's the function called when you submit a gallery content type post.
|
#8
|
|||
|
|||
Thanks, mate! I'll take a peek.
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|