View Single Post
  #1  
Old 08-23-2008, 05:47 PM
ringleader's Avatar
ringleader ringleader is offline
 
Join Date: Dec 2006
Location: Dublin, Ireland
Posts: 192
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Copy album picture to another album

Hi all,

I'm trying to copy an existing photo to another album, but still have it available to the current users' album.

I'm trying to do this with the picture data manager, but with little time to have played around with it I'm at a loss. Pictures (table: picture) and albums (table: albums) have an intermediary table called albumpicture. The problem arises when changing the albumid for the picture in this table using the picture data manager.

What I have below is if the title of the album chosen does not match the current album for the picture, then reset the albuminfo (I think this is used in the picture data manager), then essentially copy the picture data to a new row in the picture table, and set a new row in albumpicture with the new albumid for that pictureid.

Code:
	if($vbulletin->GPC['pictures']["$album[albumid]"]['title'] != $albuminfo['title'])
	{
		$newalbumid = $vbulletin->GPC['pictures']["$album[albumid]"]['title'];
		
		$album_sql = $db->query_first("
			SELECT albumid
			FROM " . TABLE_PREFIX . "album
			WHERE albumid LIKE '%$vbulletin->GPC['pictures']["$album[albumid]"]['title']%'
		");

		// Reset albuminfo with destination albumid
		$albuminfo1 = fetch_albuminfo(album_sql['albumid']);

		$picturedata =& datamanager_init(fetch_picture_dm_name(), $vbulletin, ERRTYPE_SILENT, 'picture');
		$picturedata->set('title', $vbulletin->GPC['pictures']["$picture[pictureid]"]['title']);
		$picturedata->set('caption', $vbulletin->GPC['pictures']["$picture[pictureid]"]['caption']);
		$picturedata->set('tags', $vbulletin->GPC['pictures']["$picture[pictureid]"]['tags']);
		$picturedata->save();
	}
I think I'm on the right track, but will resetting the albuminfo[albumid] do the trick the way I think it will?

P.s. also not sure what fetch_picture_dm_name() is doing here in the DM. Will this insert a new row for the picture, or does it refer to the pictureid's that are being looped through at that point?

All help much appreciated!
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01171 seconds
  • Memory Usage 1,767KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete