Przeglądaj źródła

Revert "All the hooks instroduced in 2.1 don't pass variables by ref any more, while hooks already present in 2.0 will still pass by-ref [Issue #54]"

This reverts commit 99797a97d2b5493a802e8dbc1b5e834bb91929ed.

Conflicts:

	Sources/Load.php
	Sources/ManageLanguages.php
	Sources/ManageSearch.php
emanuele 11 lat temu
rodzic
commit
8a78516ebc

+ 3 - 3
Sources/Admin.php

@@ -760,7 +760,7 @@ function AdminSearchInternal()
 		array('ModifyPruningSettings', 'area=logs;sa=pruning'),
 	);
 
-	call_integration_hook('integrate_admin_search', array($language_files, $include_files, $settings_search));
+	call_integration_hook('integrate_admin_search', array(&$language_files, &$include_files, &$settings_search));
 
 	loadLanguage(implode('+', $language_files));
 
@@ -938,7 +938,7 @@ function AdminLogs()
 		'pruning' => array('ManageSettings.php', 'ModifyPruningSettings'),
 	);
 
-	call_integration_hook('integrate_manage_logs', array($log_functions));
+	call_integration_hook('integrate_manage_logs', array(&$log_functions));
 
 	$sub_action = isset($_REQUEST['sa']) && isset($log_functions[$_REQUEST['sa']]) && empty($log_functions[$_REQUEST['sa']]['disabled']) ? $_REQUEST['sa'] : 'errorlog';
 	// If it's not got a sa set it must have come here for first time, pretend error log should be reversed.
@@ -996,4 +996,4 @@ function AdminEndSession()
 	redirectexit('action=admin');
 }
 
-?>
+?>

+ 4 - 7
Sources/Display.php

@@ -150,7 +150,7 @@ function Display()
 	);
 	$topic_selects = array();
 	$topic_tables = array();
-	call_integration_hook('integrate_display_topic', array($topic_selects, $topic_tables, $topic_parameters));
+	call_integration_hook('integrate_display_topic', array(&$topic_selects, &$topic_tables, &$topic_parameters));
 
 	// @todo Why isn't this cached?
 	// @todo if we get id_board in this query and cache it, we can save a query on posting
@@ -979,7 +979,7 @@ function Display()
 		);
 		$msg_selects = array();
 		$msg_tables = array();
-		call_integration_hook('integrate_query_message', array($msg_selects, $msg_tables, $msg_parameters));
+		call_integration_hook('integrate_query_message', array(&$msg_selects, &$msg_tables, &$msg_parameters));
 
 		// What?  It's not like it *couldn't* be only guests in this topic...
 		if (!empty($posters))
@@ -1164,10 +1164,7 @@ function Display()
 		$context['mod_buttons'][] = array('text' => 'restore_topic', 'image' => '', 'lang' => true, 'url' => $scripturl . '?action=restoretopic;topics=' . $context['current_topic'] . ';' . $context['session_var'] . '=' . $context['session_id']);
 
 	// Allow adding new mod buttons easily.
-	// Note: $context['normal_buttons'] and $context['mod_buttons'] are added for backward compatibility with 2.0, but are deprecated and should not be used
-	call_integration_hook('integrate_display_buttons', array($context['normal_buttons']));
-	// Note: integrate_mod_buttons is no more necessary and deprecated, but is kept for backward compatibility with 2.0
-	call_integration_hook('integrate_mod_buttons', array($context['mod_buttons']));
+	call_integration_hook('integrate_display_buttons');
 }
 
 /**
@@ -1295,7 +1292,7 @@ function prepareDisplayContext($reset = false)
 	if (!empty($output['modified']['name']))
 		$output['modified']['last_edit_text'] = sprintf($txt['last_edit_by'], $output['modified']['time'], $output['modified']['name']);
 
-	call_integration_hook('integrate_prepare_display_context', array($output, $message));
+	call_integration_hook('integrate_prepare_display_context', array(&$output, &$message));
 
 	if (empty($options['view_newest_first']))
 		$counter++;

+ 1 - 1
Sources/Errors.php

@@ -88,7 +88,7 @@ function log_error($error_message, $error_type = 'general', $file = null, $line
 	if (empty($tried_hook))
 	{
 		$tried_hook = true;
-		call_integration_hook('integrate_error_types', array($other_error_types));
+		call_integration_hook('integrate_error_types', array(&$other_error_types));
 		$known_error_types += $other_error_types;
 	}
 	// Make sure the category that was specified is a valid one

+ 6 - 6
Sources/Load.php

@@ -944,7 +944,7 @@ function loadMemberData($users, $is_name = false, $set = 'normal')
 	}
 
 	// Allow mods to easily add to the selected member data
-	call_integration_hook('integrate_load_member_data', array($select_columns, $select_tables, $set));
+	call_integration_hook('integrate_load_member_data', array(&$select_columns, &$select_tables, &$set));
 
 	if (!empty($users))
 	{
@@ -1238,7 +1238,7 @@ function loadMemberContext($user, $display_custom_fields = false)
 		}
 	}
 
-	call_integration_hook('integrate_member_context', array($user, $display_custom_fields));
+	call_integration_hook('integrate_member_context', array(&$user, $display_custom_fields));
 	return true;
 }
 
@@ -2586,7 +2586,7 @@ function cache_quick_get($key, $file, $function, $params, $level = 1)
 	// @todo Why are we doing this if caching is disabled?
 
 	if (function_exists('call_integration_hook'))
-		call_integration_hook('pre_cache_quick_get', array($key, $file, $function, $params, $level));
+		call_integration_hook('pre_cache_quick_get', array(&$key, &$file, &$function, &$params, &$level));
 
 	/* Refresh the cache if either:
 		1. Caching is disabled.
@@ -2609,7 +2609,7 @@ function cache_quick_get($key, $file, $function, $params, $level = 1)
 		eval($cache_block['post_retri_eval']);
 
 	if (function_exists('call_integration_hook'))
-		call_integration_hook('post_cache_quick_get', array($cache_block));
+		call_integration_hook('post_cache_quick_get', array(&$cache_block));
 
 	return $cache_block['data'];
 }
@@ -2740,7 +2740,7 @@ function cache_put_data($key, $value, $ttl = 120)
 	}
 
 	if (function_exists('call_integration_hook'))
-		call_integration_hook('cache_put_data', array($key, $value, $ttl));
+		call_integration_hook('cache_put_data', array(&$key, &$value, &$ttl));
 
 	if (isset($db_show_debug) && $db_show_debug === true)
 		$cache_hits[$cache_count]['t'] = array_sum(explode(' ', microtime())) - array_sum(explode(' ', $st));
@@ -2836,7 +2836,7 @@ function cache_get_data($key, $ttl = 120)
 	}
 
 	if (function_exists('call_integration_hook') && isset($value))
-		call_integration_hook('cache_get_data', array($key, $ttl, $value));
+		call_integration_hook('cache_get_data', array(&$key, &$ttl, &$value));
 
 	return empty($value) ? null : @unserialize($value);
 }

+ 3 - 3
Sources/ManageAttachments.php

@@ -54,7 +54,7 @@ function ManageAttachments()
 		'transfer' => 'TransferAttachments',
 	);
 
-	call_integration_hook('integrate_manage_attachments', array($subActions));
+	call_integration_hook('integrate_manage_attachments', array(&$subActions));
 
 	// Pick the correct sub-action.
 	if (isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]))
@@ -189,7 +189,7 @@ function ManageAttachmentSettings($return_config = false)
 	base_dir.addEventListener("change", toggleSubDir, false);
 	toggleSubDir();';
 
-	call_integration_hook('integrate_modify_attachment_settings', array($config_vars));
+	call_integration_hook('integrate_modify_attachment_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -319,7 +319,7 @@ function ManageAvatarSettings($return_config = false)
 			array('text', 'custom_avatar_url', 40),
 	);
 
-	call_integration_hook('integrate_modify_avatar_settings', array($config_vars));
+	call_integration_hook('integrate_modify_avatar_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;

+ 1 - 1
Sources/ManageBans.php

@@ -44,7 +44,7 @@ function Ban()
 		'log' => 'BanLog',
 	);
 
-	call_integration_hook('integrate_manage_bans', array($subActions));
+	call_integration_hook('integrate_manage_bans', array(&$subActions));
 
 	// Default the sub-action to 'view ban list'.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'list';

+ 3 - 3
Sources/ManageBoards.php

@@ -44,7 +44,7 @@ function ManageBoards()
 		'settings' => array('EditBoardSettings', 'admin_forum'),
 	);
 
-	call_integration_hook('integrate_manage_boards', array($subActions));
+	call_integration_hook('integrate_manage_boards', array(&$subActions));
 
 	// Default to sub action 'main' or 'settings' depending on permissions.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : (allowedTo('manage_boards') ? 'main' : 'settings');
@@ -804,7 +804,7 @@ function EditBoardSettings($return_config = false)
 			array('check', 'deny_boards_access'),
 	);
 
-	call_integration_hook('integrate_modify_board_settings', array($config_vars));
+	call_integration_hook('integrate_modify_board_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -848,4 +848,4 @@ function EditBoardSettings($return_config = false)
 	prepareDBSettingContext($config_vars);
 }
 
-?>
+?>

+ 2 - 2
Sources/ManageCalendar.php

@@ -41,7 +41,7 @@ function ManageCalendar()
 		'settings' => 'ModifyCalendarSettings'
 	);
 
-	call_integration_hook('integrate_manage_calendar', array($subActions));
+	call_integration_hook('integrate_manage_calendar', array(&$subActions));
 
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'holidays';
 
@@ -335,7 +335,7 @@ function ModifyCalendarSettings($return_config = false)
 			array('int', 'cal_maxspan', 6, 'postinput' => $txt['days_word']),
 	);
 
-	call_integration_hook('integrate_modify_calendar_settings', array($config_vars));
+	call_integration_hook('integrate_modify_calendar_settings', array(&$config_vars));
 	if ($return_config)
 		return $config_vars;
 

+ 2 - 2
Sources/ManageLanguages.php

@@ -43,7 +43,7 @@ function ManageLanguages()
 		'editlang' => 'ModifyLanguage',
 	);
 
-	call_integration_hook('integrate_manage_languages', array($subActions));
+	call_integration_hook('integrate_manage_languages', array(&$subActions));
 
 	// By default we're managing languages.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'edit';
@@ -807,7 +807,7 @@ function ModifyLanguageSettings($return_config = false)
 		array('userLanguage', $txt['userLanguage'], 'db', 'check', null, 'userLanguage'),
 	);
 
-	call_integration_hook('integrate_language_settings', array($config_vars));
+	call_integration_hook('integrate_language_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;

+ 2 - 2
Sources/ManageMail.php

@@ -43,7 +43,7 @@ function ManageMail()
 		'settings' => 'ModifyMailSettings',
 	);
 
-	call_integration_hook('integrate_manage_mail', array($subActions));
+	call_integration_hook('integrate_manage_mail', array(&$subActions));
 
 	// By default we want to browse
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'browse';
@@ -314,7 +314,7 @@ function ModifyMailSettings($return_config = false)
 			'birthday_body' => array('var_message', 'birthday_body', 'var_message' => nl2br($body), 'disabled' => true, 'size' => ceil(strlen($body) / 25)),
 	);
 
-	call_integration_hook('integrate_modify_mail_settings', array($config_vars));
+	call_integration_hook('integrate_modify_mail_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;

+ 1 - 1
Sources/ManageMaintenance.php

@@ -91,7 +91,7 @@ function ManageMaintenance()
 		),
 	);
 
-	call_integration_hook('integrate_manage_maintenance', array($subActions));
+	call_integration_hook('integrate_manage_maintenance', array(&$subActions));
 
 	// Yep, sub-action time!
 	if (isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]))

+ 2 - 2
Sources/ManageMembergroups.php

@@ -40,7 +40,7 @@ function ModifyMembergroups()
 		'settings' => array('ModifyMembergroupsettings', 'admin_forum'),
 	);
 
-	call_integration_hook('integrate_manage_membergroups', array($subActions));
+	call_integration_hook('integrate_manage_membergroups', array(&$subActions));
 
 	// Default to sub action 'index' or 'settings' depending on permissions.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : (allowedTo('manage_membergroups') ? 'index' : 'settings');
@@ -1135,7 +1135,7 @@ function ModifyMembergroupsettings()
 			array('permissions', 'manage_membergroups'),
 	);
 
-	call_integration_hook('integrate_modify_membergroup_settings', array($config_vars));
+	call_integration_hook('integrate_modify_membergroup_settings', array(&$config_vars));
 
 	if (isset($_REQUEST['save']))
 	{

+ 2 - 2
Sources/ManageMembers.php

@@ -37,7 +37,7 @@ function ViewMembers()
 		'query' => array('ViewMemberlist', 'moderate_forum'),
 	);
 
-	call_integration_hook('integrate_manage_members', array($subActions));
+	call_integration_hook('integrate_manage_members', array(&$subActions));
 
 	// Default to sub action 'index' or 'settings' depending on permissions.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'all';
@@ -278,7 +278,7 @@ function ViewMemberlist()
 			'++' => '>'
 		);
 
-		call_integration_hook('integrate_view_members_params', array($params));
+		call_integration_hook('integrate_view_members_params', array(&$params));
 
 		$search_params = array();
 		if ($context['sub_action'] == 'query' && !empty($_REQUEST['params']) && empty($_POST['types']))

+ 3 - 3
Sources/ManageNews.php

@@ -41,7 +41,7 @@ function ManageNews()
 		'settings' => array('ModifyNewsSettings', 'admin_forum'),
 	);
 
-	call_integration_hook('integrate_manage_news', array($subActions));
+	call_integration_hook('integrate_manage_news', array(&$subActions));
 
 	// Default to sub action 'main' or 'settings' depending on permissions.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : (allowedTo('edit_news') ? 'editnews' : (allowedTo('send_mail') ? 'mailingmembers' : 'settings'));
@@ -1048,7 +1048,7 @@ function ModifyNewsSettings($return_config = false)
 			array('text', 'xmlnews_maxlen', 'subtext' => $txt['xmlnews_maxlen_note'], 10),
 	);
 
-	call_integration_hook('integrate_modify_news_settings', array($config_vars));
+	call_integration_hook('integrate_modify_news_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -1086,4 +1086,4 @@ function ModifyNewsSettings($return_config = false)
 	prepareDBSettingContext($config_vars);
 }
 
-?>
+?>

+ 1 - 1
Sources/ManagePaid.php

@@ -40,7 +40,7 @@ function ManagePaidSubscriptions()
 		'viewsub' => array('ViewSubscribedUsers', 'admin_forum'),
 	);
 
-	call_integration_hook('integrate_manage_subscriptions', array($subActions));
+	call_integration_hook('integrate_manage_subscriptions', array(&$subActions));
 
 	// Default the sub-action to 'view subscriptions', but only if they have already set things up..
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : (!empty($modSettings['paid_currency_symbol']) ? 'view' : 'settings');

+ 3 - 3
Sources/ManagePermissions.php

@@ -44,7 +44,7 @@ function ModifyPermissions()
 		'settings' => array('GeneralPermissionSettings', 'admin_forum'),
 	);
 
-	call_integration_hook('integrate_manage_permissions', array($subActions));
+	call_integration_hook('integrate_manage_permissions', array(&$subActions));
 
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) && empty($subActions[$_REQUEST['sa']]['disabled']) ? $_REQUEST['sa'] : (allowedTo('manage_permissions') ? 'index' : 'settings');
 	isAllowedTo($subActions[$_REQUEST['sa']][1]);
@@ -978,7 +978,7 @@ function GeneralPermissionSettings($return_config = false)
 			array('check', 'permission_enable_postgroups', 0, $txt['permission_settings_enable_postgroups'], 'help' => 'permissions_postgroups'),
 	);
 
-	call_integration_hook('integrate_modify_permission_settings', array($config_vars));
+	call_integration_hook('integrate_modify_permission_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -2288,7 +2288,7 @@ function ModifyPostModeration()
 		'attachment' => array('post_attachment', 'post_unapproved_attachments'),
 	);
 
-	call_integration_hook('integrate_post_moderation_mapping', array($mappings));
+	call_integration_hook('integrate_post_moderation_mapping', array(&$mappings));
 
 	// Start this with the guests/members.
 	$context['profile_groups'] = array(

+ 5 - 5
Sources/ManagePosts.php

@@ -38,7 +38,7 @@ function ManagePostSettings()
 		'topics' => 'ModifyTopicSettings',
 	);
 
-	call_integration_hook('integrate_manage_posts', array($subActions));
+	call_integration_hook('integrate_manage_posts', array(&$subActions));
 
 	// Default the sub-action to 'posts'.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'posts';
@@ -128,7 +128,7 @@ function SetCensor()
 			'censorIgnoreCase' => empty($_POST['censorIgnoreCase']) ? '0' : '1',
 		);
 
-		call_integration_hook('integrate_save_censors', array($updates));
+		call_integration_hook('integrate_save_censors', array(&$updates));
 
 		updateSettings($updates);
 	}
@@ -200,7 +200,7 @@ function ModifyPostSettings($return_config = false)
 			array('int', 'preview_characters', 'subtext' => $txt['preview_characters_zero'], 'postinput' => $txt['preview_characters_units']),
 	);
 
-	call_integration_hook('integrate_modify_post_settings', array($config_vars));
+	call_integration_hook('integrate_modify_post_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -275,7 +275,7 @@ function ModifyBBCSettings($return_config = false)
 	$context['settings_post_javascript'] = '
 		toggleBBCDisabled(\'disabledBBC\', ' . (empty($modSettings['enableBBC']) ? 'true' : 'false') . ');';
 
-	call_integration_hook('integrate_modify_bbc_settings', array($config_vars));
+	call_integration_hook('integrate_modify_bbc_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -352,7 +352,7 @@ function ModifyTopicSettings($return_config = false)
 
 	);
 
-	call_integration_hook('integrate_modify_topic_settings', array($config_vars));
+	call_integration_hook('integrate_modify_topic_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;

+ 2 - 2
Sources/ManageRegistration.php

@@ -41,7 +41,7 @@ function RegCenter()
 		'settings' => array('ModifyRegistrationSettings', 'admin_forum'),
 	);
 
-	call_integration_hook('integrate_manage_registrations', array($subActions));
+	call_integration_hook('integrate_manage_registrations', array(&$subActions));
 
 	// Work out which to call...
 	$context['sub_action'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : (allowedTo('moderate_forum') ? 'register' : 'settings');
@@ -291,7 +291,7 @@ function ModifyRegistrationSettings($return_config = false)
 			array('text', 'coppaPhone'),
 	);
 
-	call_integration_hook('integrate_modify_registration_settings', array($config_vars));
+	call_integration_hook('integrate_modify_registration_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;

+ 1 - 1
Sources/ManageScheduledTasks.php

@@ -39,7 +39,7 @@ function ManageScheduledTasks()
 		'tasks' => 'ScheduledTasks',
 	);
 
-	call_integration_hook('integrate_manage_scheduled_tasks', array($subActions));
+	call_integration_hook('integrate_manage_scheduled_tasks', array(&$subActions));
 
 	// We need to find what's the action.
 	if (isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]))

+ 3 - 3
Sources/ManageSearch.php

@@ -48,7 +48,7 @@ function ManageSearch()
 		'createmsgindex' => 'CreateMessageIndex',
 	);
 
-	call_integration_hook('integrate_manage_search', array($subActions));
+	call_integration_hook('integrate_manage_search', array(&$subActions));
 
 	// Default the sub-action to 'edit search settings'.
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'weights';
@@ -103,7 +103,7 @@ function EditSearchSettings($return_config = false)
 			array('int', 'search_floodcontrol_time', 'subtext' => $txt['search_floodcontrol_time_desc'], 6, 'postinput' => $txt['seconds']),
 	);
 
-	call_integration_hook('integrate_modify_search_settings', array($config_vars));
+	call_integration_hook('integrate_modify_search_settings', array(&$config_vars));
 
 	// Perhaps the search method wants to add some settings?
 	require_once($sourcedir . '/Search.php');
@@ -164,7 +164,7 @@ function EditWeights()
 		'search_weight_sticky',
 	);
 
-	call_integration_hook('integrate_modify_search_weights', array($factors));
+	call_integration_hook('integrate_modify_search_weights', array(&$factors));
 
 	// A form was submitted.
 	if (isset($_POST['save']))

+ 2 - 2
Sources/ManageSearchEngines.php

@@ -36,7 +36,7 @@ function SearchEngines()
 		'stats' => 'SpiderStats',
 	);
 
-	call_integration_hook('integrate_manage_search_engines', array($subActions));
+	call_integration_hook('integrate_manage_search_engines', array(&$subActions));
 
 	// Ensure we have a valid subaction.
 	$context['sub_action'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'stats';
@@ -88,7 +88,7 @@ function ManageSearchEngineSettings($return_config = false)
 		}
 		disableFields();';
 
-	call_integration_hook('integrate_modify_search_engine_settings', array($config_vars));
+	call_integration_hook('integrate_modify_search_engine_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;

+ 7 - 7
Sources/ManageServer.php

@@ -99,7 +99,7 @@ function ModifySettings()
 		'phpinfo' => 'ShowPHPinfoSettings',
 	);
 
-	call_integration_hook('integrate_server_settings', array($subActions));
+	call_integration_hook('integrate_server_settings', array(&$subActions));
 
 	// By default we're editing the core settings
 	$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'general';
@@ -162,7 +162,7 @@ function ModifyGeneralSettings($return_config = false)
 		array('disableHostnameLookup', $txt['disableHostnameLookup'], 'db', 'check', null, 'disableHostnameLookup'),
 	);
 
-	call_integration_hook('integrate_general_settings', array($config_vars));
+	call_integration_hook('integrate_general_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -225,7 +225,7 @@ function ModifyDatabaseSettings($return_config = false)
 		array('cachedir', $txt['cachedir'], 'file', 'text', 36),
 	);
 
-	call_integration_hook('integrate_database_settings', array($config_vars));
+	call_integration_hook('integrate_database_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -274,7 +274,7 @@ function ModifyCookieSettings($return_config = false)
 		array('databaseSession_lifetime', $txt['databaseSession_lifetime'], 'db', 'int', false, 'databaseSession_lifetime', 'postinput' => $txt['seconds']),
 	);
 
-	call_integration_hook('integrate_cookie_settings', array($config_vars));
+	call_integration_hook('integrate_cookie_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -371,7 +371,7 @@ function ModifyCacheSettings($return_config = false)
 		cache_type.addEventListener("change", toggleCache);
 		toggleCache();';
 
-	call_integration_hook('integrate_modify_cache_settings', array($config_vars));
+	call_integration_hook('integrate_modify_cache_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -460,7 +460,7 @@ function ModifyLoadBalancingSettings($return_config = false)
 		$config_vars[] = array('text', $name, 'value' => $value, 'disabled' => $disabled);
 	}
 
-	call_integration_hook('integrate_loadavg_settings', array($config_vars));
+	call_integration_hook('integrate_loadavg_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -728,7 +728,7 @@ function prepareDBSettingContext(&$config_vars)
 		}
 	}
 
-	call_integration_hook('integrate_prepare_db_settings', array($config_vars));
+	call_integration_hook('integrate_prepare_db_settings', array(&$config_vars));
 	createToken('admin-dbsc');
 }
 

+ 15 - 15
Sources/ManageSettings.php

@@ -61,7 +61,7 @@ function ModifyFeatureSettings()
 		'profileedit' => 'EditCustomProfiles',
 	);
 
-	call_integration_hook('integrate_modify_features', array($subActions));
+	call_integration_hook('integrate_modify_features', array(&$subActions));
 
 	// If Advanced Profile Fields are disabled don't show the setting page
 	if (!in_array('cp', $context['admin_features']))
@@ -113,7 +113,7 @@ function ModifySecuritySettings()
 		'moderation' => 'ModifyModerationSettings',
 	);
 
-	call_integration_hook('integrate_modify_security', array($subActions));
+	call_integration_hook('integrate_modify_security', array(&$subActions));
 
 	// If Warning System is disabled don't show the setting page
 	if (!in_array('w', $context['admin_features']))
@@ -540,7 +540,7 @@ function ModifyBasicSettings($return_config = false)
 	else
 		unset($config_vars['default_timezone']);
 
-	call_integration_hook('integrate_modify_basic_settings', array($config_vars));
+	call_integration_hook('integrate_modify_basic_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -602,7 +602,7 @@ function ModifyGeneralSecuritySettings($return_config = false)
 			array('check', 'enableReportPM'),
 	);
 
-	call_integration_hook('integrate_general_security_settings', array($config_vars));
+	call_integration_hook('integrate_general_security_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -656,7 +656,7 @@ function ModifyLayoutSettings($return_config = false)
 			array('check', 'timeLoadPageEnable'),
 	);
 
-	call_integration_hook('integrate_layout_settings', array($config_vars));
+	call_integration_hook('integrate_layout_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -705,7 +705,7 @@ function ModifyKarmaSettings($return_config = false)
 			array('text', 'karmaSmiteLabel'),
 	);
 
-	call_integration_hook('integrate_karma_settings', array($config_vars));
+	call_integration_hook('integrate_karma_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -746,7 +746,7 @@ function ModifyModerationSettings($return_config = false)
 			array('select', 'warning_show', 'subtext' => $txt['setting_warning_show_note'], array($txt['setting_warning_show_mods'], $txt['setting_warning_show_user'], $txt['setting_warning_show_all'])),
 	);
 
-	call_integration_hook('integrate_moderation_settings', array($config_vars));
+	call_integration_hook('integrate_moderation_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -780,7 +780,7 @@ function ModifyModerationSettings($return_config = false)
 		$save_vars[] = array('text', 'warning_settings');
 		unset($save_vars['rem1'], $save_vars['rem2']);
 
-		call_integration_hook('integrate_save_karma_settings', array($save_vars));
+		call_integration_hook('integrate_save_karma_settings', array(&$save_vars));
 
 		saveDBSettings($save_vars);
 		redirectexit('action=admin;area=securitysettings;sa=moderation');
@@ -830,7 +830,7 @@ function ModifySpamSettings($return_config = false)
 				array('callback', 'question_answer_list'),
 	);
 
-	call_integration_hook('integrate_spam_settings', array($config_vars));
+	call_integration_hook('integrate_spam_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -941,7 +941,7 @@ function ModifySpamSettings($return_config = false)
 		if (empty($count_questions) || $_POST['qa_verification_number'] > $count_questions)
 			$_POST['qa_verification_number'] = $count_questions;
 
-		call_integration_hook('integrate_save_spam_settings', array($save_vars));
+		call_integration_hook('integrate_save_spam_settings', array(&$save_vars));
 
 		// Now save.
 		saveDBSettings($save_vars);
@@ -1018,7 +1018,7 @@ function ModifySignatureSettings($return_config = false)
 			array('bbc', 'signature_bbc'),
 	);
 
-	call_integration_hook('integrate_signature_settings', array($config_vars));
+	call_integration_hook('integrate_signature_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -1237,7 +1237,7 @@ function ModifySignatureSettings($return_config = false)
 				}
 
 				$sig = strtr($sig, array("\n" => '<br />'));
-				call_integration_hook('integrate_apply_signature_settings', array($sig, $sig_limits, $disabledTags));
+				call_integration_hook('integrate_apply_signature_settings', array(&$sig, $sig_limits, $disabledTags));
 				if ($sig != $row['signature'])
 					$changes[$row['id_member']] = $sig;
 			}
@@ -1312,7 +1312,7 @@ function ModifySignatureSettings($return_config = false)
 				$sig_limits[] = !empty($_POST['signature_' . $key]) ? max(1, (int) $_POST['signature_' . $key]) : 0;
 		}
 
-		call_integration_hook('integrate_save_signature_settings', array($sig_limits, $bbcTags));
+		call_integration_hook('integrate_save_signature_settings', array(&$sig_limits, &$bbcTags));
 
 		$_POST['signature_settings'] = implode(',', $sig_limits) . ':' . implode(',', array_diff($bbcTags, $_POST['signature_bbc_enabledTags']));
 
@@ -2099,7 +2099,7 @@ function ModifyPruningSettings($return_config = false)
 			// Mod Developers: Do NOT use the pruningOptions master variable for this as SMF Core may overwrite your setting in the future!
 	);
 
-	call_integration_hook('integrate_prune_settings', array($config_vars));
+	call_integration_hook('integrate_prune_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -2186,7 +2186,7 @@ function ModifyGeneralModSettings($return_config = false)
 
 		$save_vars = $config_vars;
 
-		call_integration_hook('integrate_save_general_mod_settings', array($save_vars));
+		call_integration_hook('integrate_save_general_mod_settings', array(&$save_vars));
 
 		// This line is to help mod authors do a search/add after if you want to add something here. Keyword: FOOT TAPPING SUCKS!
 		saveDBSettings($save_vars);

+ 3 - 3
Sources/ManageSmileys.php

@@ -42,7 +42,7 @@ function ManageSmileys()
 		'install' => 'InstallSmileySet'
 	);
 
-	call_integration_hook('integrate_manage_smileys', array($subActions));
+	call_integration_hook('integrate_manage_smileys', array(&$subActions));
 
 	// If customized smileys is disabled don't show the setting page
 	if (empty($modSettings['smiley_enable']))
@@ -143,7 +143,7 @@ function EditSmileySettings($return_config = false)
 			array('check', 'messageIcons_enable', 'subtext' => $txt['setting_messageIcons_enable_note']),
 	);
 
-	call_integration_hook('integrate_modify_smiley_settings', array($config_vars));
+	call_integration_hook('integrate_modify_smiley_settings', array(&$config_vars));
 
 	if ($return_config)
 		return $config_vars;
@@ -2035,4 +2035,4 @@ function sortSmileyTable()
 	$smcFunc['db_remove_column']('{db_prefix}smileys', 'temp_order');
 }
 
-?>
+?>

+ 1 - 2
Sources/MessageIndex.php

@@ -661,8 +661,7 @@ function MessageIndex()
 	);
 
 	// Allow adding new buttons easily.
-	// Note: $context['normal_buttons'] is added for backward compatibility with 2.0, but is deprecated and should not be used
-	call_integration_hook('integrate_messageindex_buttons', &$context['normal_buttons']);
+	call_integration_hook('integrate_messageindex_buttons');
 }
 
 /**

+ 1 - 1
Sources/News.php

@@ -181,7 +181,7 @@ function ShowXmlFeed()
 	);
 
 	// Easy adding of sub actions
- 	call_integration_hook('integrate_xmlfeeds', array($subActions));
+ 	call_integration_hook('integrate_xmlfeeds', array(&$subActions));
 
 	if (empty($_GET['sa']) || !isset($subActions[$_GET['sa']]))
 		$_GET['sa'] = 'recent';

+ 2 - 2
Sources/Poll.php

@@ -215,7 +215,7 @@ function Vote()
 	}
 
 	// Maybe let a social networking mod log this, or something?
-	call_integration_hook('integrate_poll_vote', array($row['id_poll'], $pollOptions));
+	call_integration_hook('integrate_poll_vote', array(&$row['id_poll'], &$pollOptions));
 
 	// Return to the post...
 	redirectexit('topic=' . $topic . '.' . $_REQUEST['start']);
@@ -978,7 +978,7 @@ function RemovePoll()
 	);
 
 	// A mod might have logged this (social network?), so let them remove, it too
-	call_integration_hook('integrate_poll_remove', array($pollID));
+	call_integration_hook('integrate_poll_remove', array(&$pollID));
 
 	// Take the moderator back to the topic.
 	redirectexit('topic=' . $topic . '.' . $_REQUEST['start']);

+ 1 - 1
Sources/Profile-Modify.php

@@ -1393,7 +1393,7 @@ function editBuddies($memID)
 				unset($new_buddies[$k]);
 		}
 
-		call_integration_hook('integrate_add_buddies', array($memID, $new_buddies));
+		call_integration_hook('integrate_add_buddies', array($memID, &$new_buddies));
 
 		if (!empty($new_buddies))
 		{

+ 3 - 0
Sources/Profile.php

@@ -351,6 +351,9 @@ function ModifyProfile($post_errors = array())
 		),
 	);
 
+	// Let them modify profile areas easily.
+	call_integration_hook('integrate_profile_areas', array(&$profile_areas));
+
 	// Do some cleaning ready for the menu function.
 	$context['password_areas'] = array();
 	$current_area = isset($_REQUEST['area']) ? $_REQUEST['area'] : '';

+ 8 - 8
Sources/Search.php

@@ -292,7 +292,7 @@ function PlushSearch2()
 		),
 	);
 
-	call_integration_hook('integrate_search_weights', array($weight_factors));
+	call_integration_hook('integrate_search_weights', array(&$weight_factors));
 
 	$weight = array();
 	$weight_total = 0;
@@ -591,7 +591,7 @@ function PlushSearch2()
 		'num_replies',
 		'id_msg',
 	);
-	call_integration_hook('integrate_search_sort_columns', array($sort_columns));
+	call_integration_hook('integrate_search_sort_columns', array(&$sort_columns));
 	if (empty($search_params['sort']) && !empty($_REQUEST['sort']))
 		list ($search_params['sort'], $search_params['sort_dir']) = array_pad(explode('|', $_REQUEST['sort']), 2, '');
 	$search_params['sort'] = !empty($search_params['sort']) && in_array($search_params['sort'], $sort_columns) ? $search_params['sort'] : 'relevance';
@@ -606,7 +606,7 @@ function PlushSearch2()
 	$recentMsg = $modSettings['maxMsgID'] - $minMsg;
 
 	// *** Parse the search query
-	call_integration_hook('integrate_search_params', array($search_params));
+	call_integration_hook('integrate_search_params', array(&$search_params));
 
 	/*
 	 * Unfortunately, searching for words like this is going to be slow, so we're blacklisting them.
@@ -615,7 +615,7 @@ function PlushSearch2()
 	 * @todo Maybe only blacklist if they are the only word, or "any" is used?
 	 */
 	$blacklisted_words = array('img', 'url', 'quote', 'www', 'http', 'the', 'is', 'it', 'are', 'if');
-	call_integration_hook('integrate_search_blacklisted_words', array($blacklisted_words));
+	call_integration_hook('integrate_search_blacklisted_words', array(&$blacklisted_words));
 
 	// What are we searching for?
 	if (empty($search_params['search']))
@@ -1089,7 +1089,7 @@ function PlushSearch2()
 							$subject_query_params['excluded_phrases_' . $count++] = empty($modSettings['search_match_words']) || $no_regexp ? '%' . strtr($phrase, array('_' => '\\_', '%' => '\\%')) . '%' : '[[:<:]]' . addcslashes(preg_replace(array('/([\[\]$.+*?|{}()])/'), array('[$1]'), $phrase), '\\\'') . '[[:>:]]';
 						}
 					}
-					call_integration_hook('integrate_subject_only_search_query', array($subject_query, $subject_query_params));
+					call_integration_hook('integrate_subject_only_search_query', array(&$subject_query, &$subject_query_params));
 
 					$relevance = '1000 * (';
 					foreach ($weight_factors as $type => $value)
@@ -1337,7 +1337,7 @@ function PlushSearch2()
 								$subject_query['params']['exclude_phrase_' . $count++] = empty($modSettings['search_match_words']) || $no_regexp ? '%' . strtr($phrase, array('_' => '\\_', '%' => '\\%')) . '%' : '[[:<:]]' . addcslashes(preg_replace(array('/([\[\]$.+*?|{}()])/'), array('[$1]'), $phrase), '\\\'') . '[[:>:]]';
 							}
 						}
-						call_integration_hook('integrate_subject_search_query', array($subject_query));
+						call_integration_hook('integrate_subject_search_query', array(&$subject_query));
 
 						// Nothing to search for?
 						if (empty($subject_query['where']))
@@ -1555,7 +1555,7 @@ function PlushSearch2()
 						$main_query['parameters']['board_query'] = $boardQuery;
 					}
 				}
-				call_integration_hook('integrate_main_search_query', array($main_query));
+				call_integration_hook('integrate_main_search_query', array(&$main_query));
 
 				// Did we either get some indexed results, or otherwise did not do an indexed query?
 				if (!empty($indexedResults) || !$searchAPI->supportsMethod('indexedWordQuery', $query_params))
@@ -2115,7 +2115,7 @@ function prepareSearchContext($reset = false)
 	);
 	$counter++;
 
-	call_integration_hook('integrate_search_message_context', array($counter, $output));
+	call_integration_hook('integrate_search_message_context', array($counter, &$output));
 
 	return $output;
 }

+ 1 - 1
Sources/Subs-Attachments.php

@@ -482,7 +482,7 @@ function processAttachments()
 	//   id_folder => $modSettings['currentAttachmentUploadDir']
 	//   errors => An array of errors (use the index of the $txt variable for that error).
 	// Template changes can be done using "integrate_upload_template".
-	call_integration_hook('integrate_attachment_upload');
+	call_integration_hook('integrate_attachment_upload', array());
 }
 
 /**

+ 4 - 4
Sources/Subs-Boards.php

@@ -461,7 +461,7 @@ function modifyBoard($board_id, &$boardOptions)
 		fatal_lang_error('no_board');
 
 	$id = $board_id;
-	call_integration_hook('integrate_pre_modify_board', array($id, $boardOptions));
+	call_integration_hook('integrate_pre_modify_board', array($id, &$boardOptions));
 
 	// All things that will be updated in the database will be in $boardUpdates.
 	$boardUpdates = array();
@@ -641,7 +641,7 @@ function modifyBoard($board_id, &$boardOptions)
 	}
 
 	$id = $board_id;
-	call_integration_hook('integrate_modify_board', array($id, $boardUpdates, $boardUpdateParameters));
+	call_integration_hook('integrate_modify_board', array($id, &$boardUpdates, &$boardUpdateParameters));
 
 	// Do the updates (if any).
 	if (!empty($boardUpdates))
@@ -772,7 +772,7 @@ function createBoard($boardOptions)
 		'-1,0', '',
 	);
 
-	call_integration_hook('integrate_create_board', array($boardOptions, $board_columns, $board_parameters));
+	call_integration_hook('integrate_create_board', array(&$boardOptions, &$board_columns, &$board_parameters));
 
 	// Insert a board, the settings are dealt with later.
 	$smcFunc['db_insert']('',
@@ -852,7 +852,7 @@ function deleteBoards($boards_to_remove, $moveChildrenTo = null)
 
 	getBoardTree();
 
-	call_integration_hook('integrate_delete_board', array($boards_to_remove, $moveChildrenTo));
+	call_integration_hook('integrate_delete_board', array($boards_to_remove, &$moveChildrenTo));
 
 	// If $moveChildrenTo is set to null, include the children in the removal.
 	if ($moveChildrenTo === null)

+ 2 - 2
Sources/Subs-Calendar.php

@@ -864,7 +864,7 @@ function insertEvent(&$eventOptions)
 		$eventOptions['start_date'], $eventOptions['end_date'],
 	);
 
-	call_integration_hook('integrate_create_event', array($eventOptions, $event_columns, $event_parameters));
+	call_integration_hook('integrate_create_event', array(&$eventOptions, &$event_columns, &$event_parameters));
 
 	// Insert the event!
 	$smcFunc['db_insert']('',
@@ -926,7 +926,7 @@ function modifyEvent($event_id, &$eventOptions)
 
 	// This is to prevent hooks to modify the id of the event
 	$real_event_id = $event_id;
-	call_integration_hook('integrate_modify_event', array($event_id, $eventOptions, $event_columns, $event_parameters));
+	call_integration_hook('integrate_modify_event', array($event_id, &$eventOptions, &$event_columns, &$event_parameters));
 
 	$smcFunc['db_query']('', '
 		UPDATE {db_prefix}calendar

+ 4 - 4
Sources/Subs-Categories.php

@@ -32,7 +32,7 @@ function modifyCategory($category_id, $catOptions)
 	$catParameters = array();
 
 	$cat_id = $category_id;
-	call_integration_hook('integrate_pre_modify_category', array($cat_id, $catOptions));
+	call_integration_hook('integrate_pre_modify_category', array($cat_id, &$catOptions));
 
 	// Wanna change the categories position?
 	if (isset($catOptions['move_after']))
@@ -95,7 +95,7 @@ function modifyCategory($category_id, $catOptions)
 	}
 
 	$cat_id = $category_id;
-	call_integration_hook('integrate_modify_category', array($cat_id, $catUpdates, $catParameters));
+	call_integration_hook('integrate_modify_category', array($cat_id, &$catUpdates, &$catParameters));
 
 	// Do the updates (if any).
 	if (!empty($catUpdates))
@@ -147,7 +147,7 @@ function createCategory($catOptions)
 		$catOptions['cat_name'],
 	);
 
-	call_integration_hook('integrate_create_category', array($catOptions, $cat_columns, $cat_parameters));
+	call_integration_hook('integrate_create_category', array(&$catOptions, &$cat_columns, &$cat_parameters));
 
 	// Add the category to the database.
 	$smcFunc['db_insert']('',
@@ -188,7 +188,7 @@ function deleteCategories($categories, $moveBoardsTo = null)
 
 	getBoardTree();
 
-	call_integration_hook('integrate_delete_category', array($categories, $moveBoardsTo));
+	call_integration_hook('integrate_delete_category', array($categories, &$moveBoardsTo));
 
 	// With no category set to move the boards to, delete them all.
 	if ($moveBoardsTo === null)

+ 1 - 2
Sources/Subs-Editor.php

@@ -1656,8 +1656,7 @@ function create_control_richedit($editorOptions)
 		);
 
 		// Allow mods to modify BBC buttons.
-		// Note: pass the array here is not necessary and is deprecated, but it is ketp for backward compatibility with 2.0
-		call_integration_hook('integrate_bbc_buttons', array(&$context['bbc_tags']));
+		call_integration_hook('integrate_bbc_buttons');
 
 		// Show the toggle?
 		if (empty($modSettings['disable_wysiwyg']))

+ 1 - 1
Sources/Subs-List.php

@@ -31,7 +31,7 @@ function createList($listOptions)
 	assert((empty($listOptions['default_sort_col']) || isset($listOptions['columns'][$listOptions['default_sort_col']])));
 	assert((!isset($listOptions['form']) || isset($listOptions['form']['href'])));
 
-	call_integration_hook('integrate_' . $listOptions['id'], array($listOptions));
+	call_integration_hook('integrate_' . $listOptions['id'], array(&$listOptions));
 
 	// All the context data will be easily accessible by using a reference.
 	$context[$listOptions['id']] = array();

+ 2 - 2
Sources/Subs-Members.php

@@ -699,7 +699,7 @@ function registerMember(&$regOptions, $return_errors = false)
 	);
 
 	// Call an optional function to validate the users' input.
-	call_integration_hook('integrate_register', array(&$regOptions, &$theme_vars, $knownInts, $knownFloats));
+	call_integration_hook('integrate_register', array(&$regOptions, &$theme_vars, &$knownInts, &$knownFloats));
 
 	$column_names = array();
 	$values = array();
@@ -1173,7 +1173,7 @@ function reattributePosts($memID, $email = false, $membername = false, $post_cou
 	);
 
 	// Allow mods with their own post tables to reattribute posts as well :)
- 	call_integration_hook('integrate_reattribute_posts', array($memID, $email, $membername, $post_count));
+ 	call_integration_hook('integrate_reattribute_posts', array(&$memID, &$email, &$membername, &$post_count));
 }
 
 /**

+ 4 - 4
Sources/Subs-Post.php

@@ -1841,7 +1841,7 @@ function createPost(&$msgOptions, &$topicOptions, &$posterOptions)
 	);
 
 	// What if we want to do anything with posts?
-	call_integration_hook('integrate_create_post', array($msgOptions, $topicOptions, $posterOptions, $message_columns, $message_parameters));
+	call_integration_hook('integrate_create_post', array(&$msgOptions, &$topicOptions, &$posterOptions, &$message_columns, &$message_parameters));
 
 	// Insert the post.
 	$smcFunc['db_insert']('',
@@ -1884,7 +1884,7 @@ function createPost(&$msgOptions, &$topicOptions, &$posterOptions)
 			$topicOptions['redirect_expires'] === null ? 0 : $topicOptions['redirect_expires'], $topicOptions['redirect_topic'] === null ? 0 : $topicOptions['redirect_topic'],
 		);
 
-		call_integration_hook('integrate_before_create_topic', array($msgOptions, $topicOptions, $posterOptions, $topic_columns, $topic_parameters));
+		call_integration_hook('integrate_before_create_topic', array(&$msgOptions, &$topicOptions, &$posterOptions, &$topic_columns, &$topic_parameters));
 
 		$smcFunc['db_insert']('',
 			'{db_prefix}topics',
@@ -1960,7 +1960,7 @@ function createPost(&$msgOptions, &$topicOptions, &$posterOptions)
 				'is_sticky = {int:is_sticky}',
 			);
 
-		call_integration_hook('integrate_modify_topic', array($topics_columns, $update_parameters, $msgOptions, $topicOptions, $posterOptions));
+		call_integration_hook('integrate_modify_topic', array(&$topics_columns, &$update_parameters, &$msgOptions, &$topicOptions, &$posterOptions));
 
 		// Update the number of replies and the lock/sticky status.
 		$smcFunc['db_query']('', '
@@ -2147,7 +2147,7 @@ function modifyPost(&$msgOptions, &$topicOptions, &$posterOptions)
 		'id_msg' => $msgOptions['id'],
 	);
 
-	call_integration_hook('integrate_modify_post', array($messages_columns, $update_parameters, $msgOptions, $topicOptions, $posterOptions, $messageInts));
+	call_integration_hook('integrate_modify_post', array(&$messages_columns, &$update_parameters, &$msgOptions, &$topicOptions, &$posterOptions, &$messageInts));
 
 	foreach ($messages_columns as $var => $val)
 	{

+ 3 - 3
Sources/Subs.php

@@ -881,7 +881,7 @@ function parse_bbc($message, $smileys = true, $cache_id = '', $parse_tags = arra
 	}
 
 	// Allow mods access before entering the main parse_bbc loop
-	call_integration_hook('integrate_pre_parsebbc', array($message, $smileys, $cache_id, $parse_tags));
+	call_integration_hook('integrate_pre_parsebbc', array(&$message, &$smileys, &$cache_id, &$parse_tags));
 
 	// Sift out the bbc for a performance improvement.
 	if (empty($bbc_codes) || $message === false || !empty($parse_tags))
@@ -2358,7 +2358,7 @@ function parse_bbc($message, $smileys = true, $cache_id = '', $parse_tags = arra
 	$message = strtr($message, array('  ' => ' &nbsp;', "\r" => '', "\n" => '<br />', '<br /> ' => '<br />&nbsp;', '&#13;' => "\n"));
 
 	// Allow mods access to what parse_bbc created
-	call_integration_hook('integrate_post_parsebbc', array($message, $smileys, $cache_id, $parse_tags));
+	call_integration_hook('integrate_post_parsebbc', array(&$message, &$smileys, &$cache_id, &$parse_tags));
 
 	// Cache the output if it took some time...
 	if (isset($cache_key, $cache_t) && array_sum(explode(' ', microtime())) - array_sum(explode(' ', $cache_t)) > 0.05)
@@ -3990,7 +3990,7 @@ function setupMenuContext()
 
 	// Not all actions are simple.
 	if (!empty($needs_action_hook))
-		call_integration_hook('integrate_current_action', array($current_action));
+		call_integration_hook('integrate_current_action', array(&$current_action));
 
 	if (isset($context['menu_buttons'][$current_action]))
 		$context['menu_buttons'][$current_action]['active_button'] = true;

+ 1 - 1
Sources/Xml.php

@@ -37,7 +37,7 @@ function XMLhttpMain()
 	);
 
 	// Easy adding of sub actions
- 	call_integration_hook('integrate_xmlhttp', array($sub_actions));
+ 	call_integration_hook('integrate_xmlhttp', array(&$sub_actions));
 
 	if (!isset($_REQUEST['sa'], $sub_actions[$_REQUEST['sa']]))
 		fatal_lang_error('no_access', false);

+ 1 - 1
index.php

@@ -202,7 +202,7 @@ function smf_main()
 		fatal_lang_error('not_a_topic', false);
 
 	$no_stat_actions = array('dlattach', 'findmember', 'jsoption', 'requestmembers', 'smstats', '.xml', 'xmlhttp', 'verificationcode', 'viewquery', 'viewsmfile');
-	call_integration_hook('integrate_pre_log_stats', array($no_stat_actions));
+	call_integration_hook('integrate_pre_log_stats', array(&$no_stat_actions));
 	// Do some logging, unless this is an attachment, avatar, toggle of editor buttons, theme option, XML feed etc.
 	if (empty($_REQUEST['action']) || !in_array($_REQUEST['action'], $no_stat_actions))
 	{