Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
  #1  
Old 02-03-2010, 12:02 AM
desi6.tv desi6.tv is offline
 
Join Date: Feb 2010
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default I need help with attachment hooks in vbulletin 4 (editing torrents on server)

Hello,

I have been running this code from version 3.6.x through 3.8.x. It has been running fine with a few modifications here and there.

Code:
function xbt_attachdata_postsave($dm)
	{
		require_once('benc.php');
		global $vbulletin;
		if ($dm->attach['extension'] != 'torrent')
			return;
		$torrent = bdec(empty($dm->info['filedata']) ? file_get_contents(fetch_attachment_path($dm->attach['userid'], $dm->attach['attachmentid'])) : $dm->info['filedata']);
		if (!isset($torrent))
			return;
		$bt_info_hash = pack('H*', sha1($torrent['value']['info']['string']));
		$bt_name = $torrent['value']['info']['value']['name']['value'];
		$bt_tracker = $torrent['value']['announce']['value'];
		$vbulletin->db->query_write(sprintf("delete from xbt_sub_files where info_hash = '%s'", addslashes($bt_info_hash)));
		if ($torrent['value']['info']['value']['length'])
		{
			$name = $torrent['value']['info']['value']['name']['value'];
			$size = $torrent['value']['info']['value']['length']['value'];
			$vbulletin->db->query_write(sprintf("insert into xbt_sub_files (info_hash, name, size) values ('%s', '%s', '%.0f')",
				addslashes($bt_info_hash), addslashes($name), $size));
			$bt_size = $size;
		}
		else
		{
			$bt_size = 0;
			foreach ($torrent['value']['info']['value']['files']['value'] as $file)
			{
				$name = '';
				foreach ($file['value']['path']['value'] as $a)
					$name .= '/' . $a['value'];
				$size = $file['value']['length']['value'];
				$vbulletin->db->query_write(sprintf("insert into xbt_sub_files (info_hash, name, size) values ('%s', '%s', '%.0f')",
					addslashes($bt_info_hash), addslashes($name), $size));
				$bt_size += (float)$size;
			}
		}
		$vbulletin->db->query_write(sprintf("update %sattachment set bt_info_hash = '%s', bt_name = '%s', bt_size = '%.0f', bt_tracker = '%s' where attachmentid = %d",
			TABLE_PREFIX, addslashes($bt_info_hash), addslashes($bt_name), $bt_size, addslashes($bt_tracker), $dm->attach['attachmentid']));

	}
It basically extracts information from the torrent uploaded and stores it into respective tables in the database. This info is later used to generate and assign the torrent with a unique passkey.

I had this function running on the attachdata_postsave hook. For some reason, it does not seem to be working with vB 4. Can anyone help me with this piece of code ? I think the attachments are handeled differently in vB4. Please explain if possible.

Secondly, attachdata_delete hook is missing. What to do if I want to run some code in its place ?

--------------- Added [DATE]1265187247[/DATE] at [TIME]1265187247[/TIME] ---------------

i want to know how the attachment array is handled in vbulletin 4
Reply With Quote
  #2  
Old 02-03-2010, 08:53 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You may add a hook into your php code if you need one. Just make sure to create a hook_*.xml file to put in the includes/xml directory to be able to use it.

Once you place the hook where you want it, look at the code around there to see what your variable names would be.

For instance, for mine, I added a hook into the function accept_upload to handle the uploading of torrents. Attachments changed quite a bit for vB4. You really need to take a look at the new attachment table and filedate table and understand their relationship to each other and to the post table, which has changed also.
Reply With Quote
  #3  
Old 02-05-2010, 04:08 AM
desi6.tv desi6.tv is offline
 
Join Date: Feb 2010
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks for the up ! i will give it a go now
Reply With Quote
  #4  
Old 04-14-2010, 06:39 PM
toolmanwill toolmanwill is offline
 
Join Date: Nov 2004
Location: Buffalo, NY
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

did ya ever have any luck with this? I'm working on it nwo but tried a tons of different way with no luck

EDIT

nevermind, i figured it out

now with figuring this out VBTT/vBitty 4 should be out soon!!!
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:47 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08454 seconds
  • Memory Usage 2,186KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete