Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #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
 


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 09:35 AM.


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.04358 seconds
  • Memory Usage 2,319KB
  • Queries Executed 12 (?)
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)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)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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