Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Integracion Groups on registration y Invita un Amigo

Soporte de MODs para phpBB 3.0.x
Dudas sobre AutoMOD aquí por favor.
Cerrado
Avatar de Usuario
RequeteChe
Asiduo/a
Mensajes: 163
Registrado: 17 Mar 2010, 06:33

Integracion Groups on registration y Invita un Amigo

#1

Mensaje por RequeteChe »

URL: http://groups-invite.tupambae.net/
Versión phpBB: 3.09
MODs Instalados:
Spoiler
  • AutoMOD
  • MOD Version Check
  • User Notify
  • Alert Box PM Notification [phpBB 3 version]
  • NV "Wer war da?"
  • Special and Normal Rank Images
  • Welcome PM on first Login (WPM)
  • Enable Browser Language Detection MOD
  • Invite A Friend
------------------------------------------------
  • board3 Portal 2.0.0 - Beta 1
  • [Addon] Special and Normal Rank Images for board3 Portal 2.0.0b1
------------------------------------------------
  • Legend Repositioning
  • Groups on Registration and Custom Profile Fields
  • Groups Page
  • DM Partners
  • DM Simple Admin Message
[*]Utlimate Points System 1.1.0[/list]
Plantilla(s) usada(s): Prosilver
Servidor: Linux pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
AutoMOD: Si. Ademas se reviso instalacion de groups on registration and custom profile fields.
URL del MOD:: http://www.phpbb.com/customise/db/mod/g ... 66#p229966

Tengo un problema que supera mis conocimientos actuales.

Como sospecho que resolver el mismo no es tan simple he creado un foro de prueba con la opcion de dar permisos de admin apropiados al quien me pueda o quiera ayudar para ver la problematica (incluyendo acceso completo mediante ftp y a la base de datos SQL (MP o registrarse en el sitio).

Aqui va la descripcion del problema:
Error combinacion Groups on registration and custom profile fields - Invite a Friend
Spoiler
Se genera un error al utilizar una invitacion atravez de invite a friend 0.6.1.
La invitacion se envia correctamente.
El link para registrarse funciona correctamente.
Al enviar el formulario de registro con llave de invitacion se genera el siguiente mensaje:
SQL ERROR [ mysql4 ]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '05 WHERE user_id = 178' at line 2 [1064]
Ocurrió un error SQL mientras recuperaba esta página. Por favor contacta con La Administración del Sitio si el problema persiste.
user_id = 178 hace aparentemente referencia al usuario que envia la invitacion

----------------------Invite a friend aparentemente ejecuta su funcion bien----------------------------------
El usuario es registrado de manera correcta en el sitio. Aunque no se entera porque se encuentra con la pantalla de SQL error.
El usuario es agregado a la lista de amigos del usuario que lo invito de manera correcta.
El usuario que envio la invitacion es agregado a la lista de amigos del nuevo usuario.
El usuario que invita recibe MP de invitacion exitosa
se intentaron varias configuraciones de Invite a Friend incluso de transferir la configuración de »User registration settings« sin cambio en el resultado.
------------------------------------------------------------------------------------------------------------------------
Groups on registration
Funciona si no se usa llave de registro de Invite a Friend
No cumple su funcion en combinacion con Invita un Amigo - (Invite a Friend)
Usuario no es insertado en el grupo previsto mediante el sistema "seleccion por campo personalizado"
Usuario no es insertado en el grupo previsto mediante el sistema seleccion por gruppo
------------------------------------------------------------------------------------------------------------------------
Archivos editados por ambos MOD's
Spoiler
Archiv edit Invite a Friend:

* memberlist.php,
* viewtopic.php,
* includes/constants.php,
* includes/functions.php,
* includes/functions_admin.php,
* includes/ucp/ucp_register.php,
* styles/prosilver/template/memberlist_body.html,
* styles/prosilver/template/memberlist_search.html,
* styles/prosilver/template/memberlist_view.html,
* styles/prosilver/template/overall_header.html,
* styles/prosilver/template/viewtopic_body.html,
* styles/prosilver/template/ucp_register.html

Archiv edit Groups on registration and custom profile field
* ucp.php,
* includes/functions_profile_fields.php,
* includes/ucp/ucp_register.php,
* styles/prosilver/template/ucp_register.html
Archivos incluidos particulares de cada MOD
Spoiler
Problem Group on registration - Invite a friend:
Archiv inclu Invite a Friend
# root/includes/functions_invite.php,
# root/includes/acp/info/acp_invite.php,
# root/includes/acp/acp_invite.php,
# root/includes/ucp/info/ucp_invite.php,
# root/includes/ucp/ucp_invite.php,
# root/adm/mods/invite_check_version.php,
# root/adm/style/acp_invite.html,
# root/adm/style/acp_invite_log.html,
# root/adm/style/acp_invite_templates.html,
# root/styles/prosilver/template/ucp_invite_invite.html,
# root/language/en/mods/info_acp_invite.php,
# root/language/en/mods/info_ucp_invite.php,
# root/language/en/email/confirm_subject.txt,
# root/language/en/email/confirm_message.txt,
# root/language/en/email/invite_subject.txt,
# root/language/en/email/invite_message.txt,
# root/install/invitation.php,

Archiv inclu Groups on registration and custom profile fields
# root/includes/functions_group_on_regs.php,
# root/includes/acp/info/acp_groups_reg.php,
# root/includes/acp/acp_groups_reg.php,
# root/adm/style/acp_groups_regs.html,
# root/language/en/mods/info_acp_group_on_regs.php,
# root/language/en/mods/group_on_regs.php,
# root/language/en/mods/umil_groups_on_reg.php,
# root/install_groups_cpf_reg.php,
Link directo a cada MOD
ABD Invite a Friend 0.62db324 phpBB.com
ABD Invite a Friend 0.62db324 phpBB-es.com


Groups on registration and custom profile fields 3.09
Spoiler
Due to code changes in phpBB the 1.0.1 version of this MOD will no longer install with AutoMOD and there is also the same problem manually installing it because the find in includes/ucp/ucp_register.php has changed.
I've updated the MOD to resolve that and update a few other things. Specifically the changes are
* Version changed to 1.0.2
* Find in includes/ucp/ucp_register.php updated
* Changed the DIY English instructions (I don't speak Turkish, so didn't change them)
* Added some automatic cache purges to the install file (because people often forget to do those)
* UMIL updated to v1.0.4
* XSD updated to v1.2.5
The whole package is in the update, so it can just be used to replace the 1.0.1 version.
MOD Group_on_Registration_and_Custom_Profile_Fields_v1.0.2.zip Archivos actuales editados por ambos MOD's
Spoiler
Archiv edit
includes/ucp/ucp_register.php

Código: Seleccionar todo

<?php

/**

*

* @package ucp

* @version $Id$

* @copyright (c) 2005 phpBB Group

* @license http://opensource.org/licenses/gpl-license.php GNU Public License

*

*/



/**

* @ignore

*/

if (!defined('IN_PHPBB'))

{

	exit;

}



/**

* ucp_register

* Board registration

* @package ucp

*/

class ucp_register

{

	var $u_action;



	function main($id, $mode)

	{

		global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;



		//

		if ($config['require_activation'] == USER_ACTIVATION_DISABLE)

		{

			trigger_error('UCP_REGISTER_DISABLE');

		}



		include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);



		$coppa			= (isset($_REQUEST['coppa'])) ? ((!empty($_REQUEST['coppa'])) ? 1 : 0) : false;

		$agreed			= (!empty($_POST['agreed'])) ? 1 : 0;

		$submit			= (isset($_POST['submit'])) ? true : false;

		$change_lang	= request_var('change_lang', '');

		$user_lang		= request_var('lang', $user->lang_name);



		if ($agreed)

		{

			add_form_key('ucp_register');

		}

		else

		{

			add_form_key('ucp_register_terms');

		}



		if ($change_lang || $user_lang != $config['default_lang'])

		{

			$use_lang = ($change_lang) ? basename($change_lang) : basename($user_lang);



			if (!validate_language_iso_name($use_lang))

			{

				if ($change_lang)

				{

					$submit = false;



					// Setting back agreed to let the user view the agreement in his/her language

					$agreed = (empty($_GET['change_lang'])) ? 0 : $agreed;

				}



				$user->lang_name = $user_lang = $use_lang;

				$user->lang = array();

				$user->data['user_lang'] = $user->lang_name;

				$user->add_lang(array('common', 'ucp'));

			}

			else

			{

				$change_lang = '';

				$user_lang = $user->lang_name;

			}

		}

		if (!class_exists('invite'))

		{

			include($phpbb_root_path . 'includes/functions_invite.' . $phpEx);

		}

		$user->add_lang('mods/info_ucp_invite');



		$invite			= new invite();

		$register_key	= request_var('key', '', true);



		if ($invite->config['set_cookie'] && $invite->valid_key($register_key))

		{

			$invite->set_cookie($register_key);

		}

		$cookie_key		= (isset($_COOKIE[$config['cookie_name'] . '_reg_key'])) ? $_COOKIE[$config['cookie_name'] . '_reg_key'] : '';

		$register_key 	= (!$invite->config['enable_key']) ? '' : ((!empty($cookie_key)) ? $cookie_key : $register_key);

		$url_key 		= (!empty($register_key)) ? "&key={$register_key}" : '';



		// We have to assign the registration key here because we want it to be kept even if the registration process is returned

		$template->assign_var('REGISTER_KEY', $register_key);





		$cp = new custom_profile();



		$error = $cp_data = $cp_error = array();



		if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable']))

		{

			$add_lang = ($change_lang) ? '&change_lang=' . urlencode($change_lang) : '';

			$add_coppa = ($coppa !== false) ? '&coppa=' . $coppa : '';

			// Abuse $add_lang var for our registration key

			$add_lang .= $url_key;



			$s_hidden_fields = array(

				'change_lang'	=> $change_lang,

			);



			// If we change the language, we want to pass on some more possible parameter.

			if ($change_lang)

			{

				// We do not include the password

				$s_hidden_fields = array_merge($s_hidden_fields, array(

					'username'			=> utf8_normalize_nfc(request_var('username', '', true)),

					'email'				=> strtolower(request_var('email', '')),

					'email_confirm'		=> strtolower(request_var('email_confirm', '')),

					'lang'				=> $user->lang_name,

					'tz'				=> request_var('tz', (float) $config['board_timezone']),

				));



			}



			// Checking amount of available languages

			$sql = 'SELECT lang_id

				FROM ' . LANG_TABLE;

			$result = $db->sql_query($sql);



			$lang_row = array();

			while ($row = $db->sql_fetchrow($result))

			{

				$lang_row[] = $row;

			}

			$db->sql_freeresult($result);



			if ($coppa === false && $config['coppa_enable'])

			{

				$now = getdate();

				$coppa_birthday = $user->format_date(mktime($now['hours'] + $user->data['user_dst'], $now['minutes'], $now['seconds'], $now['mon'], $now['mday'] - 1, $now['year'] - 13), $user->lang['DATE_FORMAT']);

				unset($now);



				$template->assign_vars(array(

					'S_LANG_OPTIONS'	=> (sizeof($lang_row) > 1) ? language_select($user_lang) : '',

					'L_COPPA_NO'		=> sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday),

					'L_COPPA_YES'		=> sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday),



					'U_COPPA_NO'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=0' . $add_lang),

					'U_COPPA_YES'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=1' . $add_lang),



					'S_SHOW_COPPA'		=> true,

					'S_HIDDEN_FIELDS'	=> build_hidden_fields($s_hidden_fields),

					'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang),

				));

			}

			else

			{

				$template->assign_vars(array(

					'S_LANG_OPTIONS'	=> (sizeof($lang_row) > 1) ? language_select($user_lang) : '',

					'L_TERMS_OF_USE'	=> sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()),



					'S_SHOW_COPPA'		=> false,

					'S_REGISTRATION'	=> true,

					'S_HIDDEN_FIELDS'	=> build_hidden_fields($s_hidden_fields),

					'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang . $add_coppa),

					)

				);

			}

			unset($lang_row);



			$this->tpl_name = 'ucp_agreement';

			return;

		}

		

		

		// The CAPTCHA kicks in here. We can't help that the information gets lost on language change. 

		if ($config['enable_confirm'])

		{

			include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);

			$captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);

			$captcha->init(CONFIRM_REG);

		}



		// Try to manually determine the timezone and adjust the dst if the server date/time complies with the default setting +/- 1

		$timezone = date('Z') / 3600;

		$is_dst = date('I');



		if ($config['board_timezone'] == $timezone || $config['board_timezone'] == ($timezone - 1))

		{

			$timezone = ($is_dst) ? $timezone - 1 : $timezone;



			if (!isset($user->lang['tz_zones'][(string) $timezone]))

			{

				$timezone = $config['board_timezone'];

			}

		}

		else

		{

			$is_dst = $config['board_dst'];

			$timezone = $config['board_timezone'];

		}



		$data = array(

			'username'			=> utf8_normalize_nfc(request_var('username', '', true)),

			'new_password'		=> request_var('new_password', '', true),

			'password_confirm'	=> request_var('password_confirm', '', true),

			'email'				=> strtolower(request_var('email', '')),

			'email_confirm'		=> strtolower(request_var('email_confirm', '')),

			'lang'				=> basename(request_var('lang', $user->lang_name)),

			'tz'				=> request_var('tz', (float) $timezone),



			//Begin: Group on Registration and Custom Profile Fields

			'reg_group_id'		=> ($config['groups_on_reg_multiple']) ?  request_var('reg_group_id', array(0)) : request_var('reg_group_id', 0),

			//End: Group on Registration and Custom Profile Fields



		);



		// Check and initialize some variables if needed

		if ($submit)

		{

			$error = validate_data($data, array(

				'username'			=> array(

					array('string', false, $config['min_name_chars'], $config['max_name_chars']),

					array('username', '')),

				'new_password'		=> array(

					array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),

					array('password')),

				'password_confirm'	=> array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),

				'email'				=> array(

					array('string', false, 6, 60),

					array('email')),

				'email_confirm'		=> array('string', false, 6, 60),

				'tz'				=> array('num', false, -14, 14),

				'lang'				=> array('language_iso_name'),



				//Begin: Group on Registration and Custom Profile Fields 

				'reg_group_id'		=> array('reg_group_id', (($config['groups_require'] && $config['groups_on_reg_enable']) ? false : true), 1, 150),

				//End: Group on Registration and Custom Profile Fields



			));



			if (!check_form_key('ucp_register'))

			{

				$error[] = $user->lang['FORM_INVALID'];

			}



			// Replace "error" strings with their real, localised form

			$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);



			if ($config['enable_confirm'])

			{

				$vc_response = $captcha->validate($data);

				if ($vc_response !== false)

				{

					$error[] = $vc_response;

				}



				if ($config['max_reg_attempts'] && $captcha->get_attempt_count() > $config['max_reg_attempts'])

				{

					$error[] = $user->lang['TOO_MANY_REGISTERS'];

				}

			}





			// Handle registration keys

			if ($invite->config['enable'])

			{

				if (!$invite->valid_key($register_key) && $invite->config['enable_key'] == 1)

				{

					if ($invite->config['enable_key'] == 1)

					{

						$error[] = $user->lang['REGISTER_KEY_INVALID'];

					}

					if ($invite->config['enable_key'] == 2)

					{

						$error[] = $user->lang['REGISTER_KEY_INVALID_OPTIONAL'];

					}

				}



				// Different account activation for registration keys?

				if ($invite->config['enable_key'] && $invite->valid_key($register_key, false))

				{

					$config['require_activation'] = ($invite->config['invite_require_activation'] == 3) ? $config['require_activation'] : $invite->config['invite_require_activation'];

				}



				// Someone is trying to take the mickey out of us? I say prevent abuse!

				if ($invite->invite_yourself($register_key))

				{

					$error[] = $user->lang['INVITE_YOURSELF'];

				}

			}

			// DNSBL check

			if ($config['check_dnsbl'])

			{

				if (($dnsbl = $user->check_dnsbl('register')) !== false)

				{

					$error[] = sprintf($user->lang['IP_BLACKLISTED'], $user->ip, $dnsbl[1]);

				}

			}



			// validate custom profile fields

			$cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);



			if (!sizeof($error))

			{

				if ($data['new_password'] != $data['password_confirm'])

				{

					$error[] = $user->lang['NEW_PASSWORD_ERROR'];

				}



				if ($data['email'] != $data['email_confirm'])

				{

					$error[] = $user->lang['NEW_EMAIL_ERROR'];

				}

			}



			if (!sizeof($error))

			{

				$server_url = generate_board_url();



				// Which group by default?

				$group_name = ($coppa) ? 'REGISTERED_COPPA' : 'REGISTERED';



				$sql = 'SELECT group_id

					FROM ' . GROUPS_TABLE . "

					WHERE group_name = '" . $db->sql_escape($group_name) . "'

						AND group_type = " . GROUP_SPECIAL;

				$result = $db->sql_query($sql);

				$row = $db->sql_fetchrow($result);

				$db->sql_freeresult($result);



				if (!$row)

				{

					trigger_error('NO_GROUP');

				}



				$group_id = $row['group_id'];



				if (($coppa ||

					$config['require_activation'] == USER_ACTIVATION_SELF ||

					$config['require_activation'] == USER_ACTIVATION_ADMIN) && $config['email_enable'])

				{

					$user_actkey = gen_rand_string(mt_rand(6, 10));

					$user_type = USER_INACTIVE;

					$user_inactive_reason = INACTIVE_REGISTER;

					$user_inactive_time = time();

				}

				else

				{

					$user_type = USER_NORMAL;

					$user_actkey = '';

					$user_inactive_reason = 0;

					$user_inactive_time = 0;

				}



				$user_row = array(

					'username'				=> $data['username'],

					'user_password'			=> phpbb_hash($data['new_password']),

					'user_email'			=> $data['email'],

					'group_id'				=> (int) $group_id,

					'user_timezone'			=> (float) $data['tz'],

					'user_dst'				=> $is_dst,

					'user_lang'				=> $data['lang'],

					'user_type'				=> $user_type,

					'user_actkey'			=> $user_actkey,

					'user_ip'				=> $user->ip,

					'user_regdate'			=> time(),

					'user_inactive_reason'	=> $user_inactive_reason,

					'user_inactive_time'	=> $user_inactive_time,



					'dm_sam_active'			=> 1,

				);



				if ($config['new_member_post_limit'])

				{

					$user_row['user_new'] = 1;

				}



				// Register user...

				$user_id = user_add($user_row, $cp_data);

				$invite->register_user($register_key, $user_id);



				// This should not happen, because the required variables are listed above...

				if ($user_id === false)

				{

					trigger_error('NO_USER', E_USER_ERROR);

				}



				//Begin: Group on Registration and Custom Profile Fields

				if ($config['groups_on_reg_enable'])

				{

					if ($config['groups_on_reg_multiple'])

					{

						foreach ($data['reg_group_id'] as $add_group_id)

						{ 

							//Add user to the selected groups

							group_add_registration($user_id, $add_group_id);

						}

					}

					else

					{

						group_add_registration($user_id, $data['reg_group_id']);

					}

				}

				if ($config['groups_to_cpf_enable'])

				{

					group_add_delete_user_cpf($user_id);

				}			

				//End: Group on Registration and Custom Profile Fields



				// Okay, captcha, your job is done.

				if ($config['enable_confirm'] && isset($captcha))

				{

					$captcha->reset();

				}



				if ($coppa && $config['email_enable'])

				{

					$message = $user->lang['ACCOUNT_COPPA'];

					$email_template = 'coppa_welcome_inactive';

				}

				else if ($config['require_activation'] == USER_ACTIVATION_SELF && $config['email_enable'])

				{

					$message = $user->lang['ACCOUNT_INACTIVE'];

					$email_template = 'user_welcome_inactive';

				}

				else if ($config['require_activation'] == USER_ACTIVATION_ADMIN && $config['email_enable'])

				{

					$message = $user->lang['ACCOUNT_INACTIVE_ADMIN'];

					$email_template = 'admin_welcome_inactive';

				}

				else

				{

					$message = $user->lang['ACCOUNT_ADDED'];

					$email_template = 'user_welcome';

				}



				if ($config['email_enable'])

				{

					include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);



					$messenger = new messenger(false);



					$messenger->template($email_template, $data['lang']);



					$messenger->to($data['email'], $data['username']);



					$messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']);

					$messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']);

					$messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']);

					$messenger->headers('X-AntiAbuse: User IP - ' . $user->ip);



					$messenger->assign_vars(array(

						'WELCOME_MSG'	=> htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename'])),

						'USERNAME'		=> htmlspecialchars_decode($data['username']),

						'PASSWORD'		=> htmlspecialchars_decode($data['new_password']),

						'U_ACTIVATE'	=> "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")

					);



					if ($coppa)

					{

						$messenger->assign_vars(array(

							'FAX_INFO'		=> $config['coppa_fax'],

							'MAIL_INFO'		=> $config['coppa_mail'],

							'EMAIL_ADDRESS'	=> $data['email'])

						);

					}



					$messenger->send(NOTIFY_EMAIL);



					if ($config['require_activation'] == USER_ACTIVATION_ADMIN)

					{

						// Grab an array of user_id's with a_user permissions ... these users can activate a user

						$admin_ary = $auth->acl_get_list(false, 'a_user', false);

						$admin_ary = (!empty($admin_ary[0]['a_user'])) ? $admin_ary[0]['a_user'] : array();



						// Also include founders

						$where_sql = ' WHERE user_type = ' . USER_FOUNDER;



						if (sizeof($admin_ary))

						{

							$where_sql .= ' OR ' . $db->sql_in_set('user_id', $admin_ary);

						}



						$sql = 'SELECT user_id, username, user_email, user_lang, user_jabber, user_notify_type

							FROM ' . USERS_TABLE . ' ' .

							$where_sql;

						$result = $db->sql_query($sql);



						while ($row = $db->sql_fetchrow($result))

						{

							$messenger->template('admin_activate', $row['user_lang']);

							$messenger->to($row['user_email'], $row['username']);

							$messenger->im($row['user_jabber'], $row['username']);



							$messenger->assign_vars(array(

								'USERNAME'			=> htmlspecialchars_decode($data['username']),

								'U_USER_DETAILS'	=> "$server_url/memberlist.$phpEx?mode=viewprofile&u=$user_id",

								'U_ACTIVATE'		=> "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")

							);



							$messenger->send($row['user_notify_type']);

						}

						$db->sql_freeresult($result);

					}

				}



				$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');

				trigger_error($message);

			}

		}



		$s_hidden_fields = array(

			'agreed'		=> 'true',

			'change_lang'	=> 0,

		);



		if ($config['coppa_enable'])

		{

			$s_hidden_fields['coppa'] = $coppa;

		}



		if ($config['enable_confirm'])

		{

			$s_hidden_fields = array_merge($s_hidden_fields, $captcha->get_hidden_fields());

		}

		$s_hidden_fields = build_hidden_fields($s_hidden_fields);

		$confirm_image = '';



		// Visual Confirmation - Show images

		if ($config['enable_confirm'])

		{

			$template->assign_vars(array(

				'CAPTCHA_TEMPLATE'		=> $captcha->get_template(),

			));

		}



		//

		$l_reg_cond = '';

		switch ($config['require_activation'])

		{

			case USER_ACTIVATION_SELF:

				$l_reg_cond = $user->lang['UCP_EMAIL_ACTIVATE'];

			break;



			case USER_ACTIVATION_ADMIN:

				$l_reg_cond = $user->lang['UCP_ADMIN_ACTIVATE'];

			break;

		}

		

		//Begin: Group on Registration and Custom Profile Fields

		if ($config['groups_on_reg_enable'])

		{

			group_on_registration();

		}

		//End: Group on Registration and Custom Profile Fields



		$template->assign_vars(array(

			'ERROR'				=> (sizeof($error)) ? implode('<br />', $error) : '',

			'USERNAME'			=> $data['username'],

			'PASSWORD'			=> $data['new_password'],

			'PASSWORD_CONFIRM'	=> $data['password_confirm'],

			'EMAIL'				=> $data['email'],

			'EMAIL_CONFIRM'		=> $data['email_confirm'],



			'L_REG_COND'				=> $l_reg_cond,

			'L_USERNAME_EXPLAIN'		=> sprintf($user->lang[$config['allow_name_chars'] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),

			'L_PASSWORD_EXPLAIN'		=> sprintf($user->lang[$config['pass_complex'] . '_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),



			'S_LANG_OPTIONS'	=> language_select($data['lang']),

			'S_TZ_OPTIONS'		=> tz_select($data['tz']),

			'S_CONFIRM_REFRESH'	=> ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,

			'S_REGISTRATION'	=> true,

			'S_COPPA'			=> $coppa,

			'S_HIDDEN_FIELDS'	=> $s_hidden_fields,

			'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", '&mode=register' . $url_key),



			//Begin: Group on Registration and Custom Profile Fields

			'S_GROUP_OPTIONS'	=> ($config['groups_on_reg_enable']) ? reg_group_select($data['reg_group_id']) : false,

			//End: Group on Registration and Custom Profile Fields



			'REGISTER_KEY'				=> $register_key,

			'S_REGISTER_KEY_EMPTY'		=> (empty($register_key) || !$register_key) ? true : false,

			'S_DISPLAY_REGISTER_KEY'	=> ($invite->valid_key($register_key) && $invite->config['autohide_valid_key']) ? false : (($invite->config['display_registration'] && $invite->config['enable_key']) ? true : false),

			'S_ENABLE_KEY_OPTIONAL'		=> ($invite->config['enable_key'] == OPTIONAL) ? true : false,

		));



		//

		$user->profile_fields = array();



		// Generate profile fields -> Template Block Variable profile_fields

		$cp->generate_profile_fields('register', $user->get_iso_lang_id());



		//

		$this->tpl_name = 'ucp_register';

		$this->page_title = 'UCP_REGISTRATION';

	}

}



?>


Archiv edit

styles/prosilver/template/ucp_register.html

Código: Seleccionar todo

<!-- INCLUDE overall_header.html -->



<script type="text/javascript">

// <![CDATA[

	/**

	* Change language

	*/

	function change_language(lang_iso)

	{

		document.forms['register'].change_lang.value = lang_iso;

		document.forms['register'].submit.click();

	}



	<!-- IF CAPTCHA_TEMPLATE and S_CONFIRM_REFRESH -->

	onload_functions.push('apply_onkeypress_event()');

	<!-- ENDIF -->



// ]]>

</script>



<form method="post" action="{S_UCP_ACTION}" id="register">



<div class="panel">

	<div class="inner"><span class="corners-top"><span></span></span>



	<h2>{SITENAME} - {L_REGISTRATION}</h2>



	<fieldset class="fields2">

	<!-- IF ERROR --><dl><dd class="error">{ERROR}</dd></dl><!-- ENDIF -->

	<!-- IF L_REG_COND -->

		<dl><dd><strong>{L_REG_COND}</strong></dd></dl>

	<!-- ENDIF -->

	<dl>

		<dt><label for="username">{L_USERNAME}:</label><br /><span>{L_USERNAME_EXPLAIN}</span></dt>

		<dd><input type="text" tabindex="1" name="username" id="username" size="25" value="{USERNAME}" class="inputbox autowidth" title="{L_USERNAME}" /></dd>

	</dl>

	<!-- IF S_DISPLAY_REGISTER_KEY -->

		<dl>

			<dt><label for="key">{L_REGISTER_KEY}:<!-- IF S_ENABLE_KEY_OPTIONAL --> ({L_OPTIONAL})<!-- ENDIF --></label><br /><span>{L_REGISTER_KEY_EXPLAIN}</span></dt>

			<dd><input type="text" name="key" id="key" size="25" value="{REGISTER_KEY}" class="inputbox autowidth" title="{L_REGISTER_KEY}" /></dd>

		</dl>

	<!-- ENDIF -->

	<dl>

		<dt><label for="email">{L_EMAIL_ADDRESS}:</label></dt>

		<dd><input type="text" tabindex="2" name="email" id="email" size="25" maxlength="100" value="{EMAIL}" class="inputbox autowidth" title="{L_EMAIL_ADDRESS}" /></dd>

	</dl>

	<dl>

		<dt><label for="email_confirm">{L_CONFIRM_EMAIL}:</label></dt>

		<dd><input type="text" tabindex="3" name="email_confirm" id="email_confirm" size="25" maxlength="100" value="{EMAIL_CONFIRM}" class="inputbox autowidth" title="{L_CONFIRM_EMAIL}" /></dd>

	</dl>

	<dl>

		<dt><label for="new_password">{L_PASSWORD}:</label><br /><span>{L_PASSWORD_EXPLAIN}</span></dt>

		<dd><input type="password" tabindex="4" name="new_password" id="new_password" size="25" value="{PASSWORD}" class="inputbox autowidth" title="{L_NEW_PASSWORD}" /></dd>

	</dl>

	<dl>

		<dt><label for="password_confirm">{L_CONFIRM_PASSWORD}:</label></dt>

		<dd><input type="password" tabindex="5" name="password_confirm" id="password_confirm" size="25" value="{PASSWORD_CONFIRM}" class="inputbox autowidth" title="{L_CONFIRM_PASSWORD}" /></dd>

	</dl>



	<hr />



	<dl>

		<dt><label for="lang">{L_LANGUAGE}:</label></dt>

		<dd><select name="lang" id="lang" onchange="change_language(this.value); return false;" tabindex="6" title="{L_LANGUAGE}">{S_LANG_OPTIONS}</select></dd>

	</dl>

	<dl>

		<dt><label for="tz">{L_TIMEZONE}:</label></dt>

		<dd><select name="tz" id="tz" tabindex="7" class="autowidth">{S_TZ_OPTIONS}</select></dd>

	</dl>



	<!-- IF .profile_fields -->

		<dl><dd><strong>{L_ITEMS_REQUIRED}</strong></dd></dl>



	<!-- BEGIN profile_fields -->

		<dl>

			<dt><label<!-- IF profile_fields.FIELD_ID --> for="{profile_fields.FIELD_ID}"<!-- ENDIF -->>{profile_fields.LANG_NAME}:<!-- IF profile_fields.S_REQUIRED --> *<!-- ENDIF --></label>

			<!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF -->

			<!-- IF profile_fields.ERROR --><br /><span class="error">{profile_fields.ERROR}</span><!-- ENDIF --></dt>

			<dd>{profile_fields.FIELD}</dd>

		</dl>

	<!-- END profile_fields -->

	<!-- ENDIF -->





	<!-- IF S_GROUPS_ON_REGISTRATION -->

		<dl>

			<dt><label>{L_GROUPS_ON_REGISTRATION}: <!-- IF S_GROUPS_REQUIRED -->*<!-- ENDIF --></label><br /><span>{GROUPS_REGISTRATION_EXP}</span></dt>

			<dd><!-- IF S_GROUPS_ON_REG_MULTIPLE --><div style="height: 6em; width: 12em; overflow: auto;">{S_GROUP_MULTIPLE_OPTIONS}</div><!-- ELSE --><select name="reg_group_id" id="reg_group_id" class="autowidth">{S_GROUP_OPTIONS}</select><!-- ENDIF --></dd>

		</dl>

	<!-- ENDIF -->

	</fieldset>

	<span class="corners-bottom"><span></span></span></div>

</div>

<!-- IF CAPTCHA_TEMPLATE -->

	<!-- DEFINE $CAPTCHA_TAB_INDEX = 8 -->

	<!-- INCLUDE {CAPTCHA_TEMPLATE} -->

<!-- ENDIF -->



<!-- IF S_COPPA -->





<div class="panel">

	<div class="inner"><span class="corners-top"><span></span></span>



	<h4>{L_COPPA_COMPLIANCE}</h4>



	<p>{L_COPPA_EXPLAIN}</p>

	<span class="corners-bottom"><span></span></span></div>

</div>

<!-- ENDIF -->



<div class="panel">

	<div class="inner"><span class="corners-top"><span></span></span>



	<fieldset class="submit-buttons">

		{S_HIDDEN_FIELDS}

		<!-- IF not S_REGISTER_KEY_EMPTY --><input type="hidden" value="{REGISTER_KEY}" name="key" class="button2" /><!-- ENDIF -->

		<input type="reset" value="{L_RESET}" name="reset" class="button2" />&nbsp;

		<input type="submit" tabindex="9" name="submit" id="submit" value="{L_SUBMIT}" class="button1 default-submit-action" />

		{S_FORM_TOKEN}

	</fieldset>



	<span class="corners-bottom"><span></span></span></div>

</div>

</form>



<!-- INCLUDE overall_footer.html -->
Adjunto los archivos ucp_register.php y ucp_register.html con ambos MOD's integrados en un ZIP.
archivos-problema-groups-invite.zip
Archivos ucp_register.php y ucp_register.html con ambos MOD's integrados
(7.11 KiB) Descargado 115 veces
:nolose:
And the day came when it took more risk to retain tightly closed as a bud than to bloom.
This is what's left, as our element of freedom.

Hasta luego, y gracias por el pescado. :cerveza:

Avatar de Usuario
RequeteChe
Asiduo/a
Mensajes: 163
Registrado: 17 Mar 2010, 06:33

Resolviendo de a poco - Integracion Groups y Invita

#2

Mensaje por RequeteChe »

Bueno meditando propiamente el problema planteado :lee revise las entradas en ucp_register.php donde sospecho los errores. Aparentemente de alguna manera el invite a Friend no dejaba al Groups on registration efectuar sus registros.

Pude resolver lo siguiente:
Groups on registration
Funciona si no se usa llave de registro de Invite a Friend
No cumple su funcion en combinacion con Invita un Amigo - (Invite a Friend)
Usuario no es insertado en el grupo previsto mediante el sistema "seleccion por campo personalizado"
Usuario no es insertado en el grupo previsto mediante el sistema seleccion por gruppo
Ambos MOD's insertan en lugares contiguos codigos:

Invite a friend:
Find
Tip: This may be a partial find and not the whole line.
Code:Select all

Código: Seleccionar todo

// Register user...
				$user_id = user_add($user_row, $cp_data);
Add after

Tip: Add these lines on a new blank line after the preceding line(s) to find.

Código: Seleccionar todo

$invite->register_user($register_key, $user_id);

Groups on registration and profile fields
Find

Tip: This may be a partial find and not the whole line.

Código: Seleccionar todo

// Register user...
				$user_id = user_add($user_row, $cp_data);

				// This should not happen, because the required variables are listed above...
				if ($user_id === false)
				{
					trigger_error('NO_USER', E_USER_ERROR);
				}
Add after

Tip: Add these lines on a new blank line after the preceding line(s) to find.

Código: Seleccionar todo

//Begin: Group on Registration and Custom Profile Fields
				if ($config['groups_on_reg_enable'])
				{
					if ($config['groups_on_reg_multiple'])
					{
						foreach ($data['reg_group_id'] as $add_group_id)
						{ 
							//Add user to the selected groups
							group_add_registration($user_id, $add_group_id);
						}
					}
					else
					{
						group_add_registration($user_id, $data['reg_group_id']);
					}
				}
				if ($config['groups_to_cpf_enable'])
				{
					group_add_delete_user_cpf($user_id);
				}			
				//End: Group on Registration and Custom Profile Fields
Asi que inserte el codigo de Groups on registration and custom profile fields antes del Invite a friend code por lo que las lineas quedaron asi:

Código: Seleccionar todo

// Register user...
				$user_id = user_add($user_row, $cp_data);
				
				//Begin: Group on Registration and Custom Profile Fields
				if ($config['groups_on_reg_enable'])
				{
					if ($config['groups_on_reg_multiple'])
					{
						foreach ($data['reg_group_id'] as $add_group_id)
						{ 
							//Add user to the selected groups
							group_add_registration($user_id, $add_group_id);
						}
					}
					else
					{
						group_add_registration($user_id, $data['reg_group_id']);
					}
				}
				if ($config['groups_to_cpf_enable'])
				{
					group_add_delete_user_cpf($user_id);
				}			
				//End: Group on Registration and Custom Profile Fields

				$invite->register_user($register_key, $user_id);

				// This should not happen, because the required variables are listed above...
				if ($user_id === false)
				{
					trigger_error('NO_USER', E_USER_ERROR);
				}
Con este cambio el MOD Groups on registration ejecuta sus funciones y ubica al usuario en los grupos previstos al registrarse.
:cachas:

Ademas cambie el orden de las siguientes lineas:
Invite a Friend:
Find

Tip: This may be a partial find and not the whole line.
Code:Select all

Código: Seleccionar todo

'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
Replace with

Tip: Replace the preceding line(s) to find with the following lines.

Código: Seleccionar todo

'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", '&mode=register' . $url_key),

			'REGISTER_KEY'				=> $register_key,
			'S_REGISTER_KEY_EMPTY'		=> (empty($register_key) || !$register_key) ? true : false,
			'S_DISPLAY_REGISTER_KEY'	=> ($invite->valid_key($register_key) && $invite->config['autohide_valid_key']) ? false : (($invite->config['display_registration'] && $invite->config['enable_key']) ? true : false),
			'S_ENABLE_KEY_OPTIONAL'		=> ($invite->config['enable_key'] == OPTIONAL) ? true : false,
Groups on registration:
Find

Tip: This may be a partial find and not the whole line.

Código: Seleccionar todo

'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
Add after

Tip: Add these lines on a new blank line after the preceding line(s) to find.

Código: Seleccionar todo

//Begin: Group on Registration and Custom Profile Fields
			'S_GROUP_OPTIONS'	=> ($config['groups_on_reg_enable']) ? reg_group_select($data['reg_group_id']) : false,
			//End: Group on Registration and Custom Profile Fields
El resultado original quedaba de manera que el Groups on registration cortaba al Invite por la mitad asi:

Código: Seleccionar todo

'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", '&mode=register' . $url_key),

			//Begin: Group on Registration and Custom Profile Fields
			'S_GROUP_OPTIONS'	=> ($config['groups_on_reg_enable']) ? reg_group_select($data['reg_group_id']) : false,
			//End: Group on Registration and Custom Profile Fields

			'REGISTER_KEY'				=> $register_key,
			'S_REGISTER_KEY_EMPTY'		=> (empty($register_key) || !$register_key) ? true : false,
			'S_DISPLAY_REGISTER_KEY'	=> ($invite->valid_key($register_key) && $invite->config['autohide_valid_key']) ? false : (($invite->config['display_registration'] && $invite->config['enable_key']) ? true : false),
			'S_ENABLE_KEY_OPTIONAL'		=> ($invite->config['enable_key'] == OPTIONAL) ? true : false,
		));
Coloque el Groups on registration despues de las lineas de Invite.
El resultado ahora se ve asi:

Código: Seleccionar todo

'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", '&mode=register' . $url_key),
			'REGISTER_KEY'				=> $register_key,
			'S_REGISTER_KEY_EMPTY'		=> (empty($register_key) || !$register_key) ? true : false,
			'S_DISPLAY_REGISTER_KEY'	=> ($invite->valid_key($register_key) && $invite->config['autohide_valid_key']) ? false : (($invite->config['display_registration'] && $invite->config['enable_key']) ? true : false),
			'S_ENABLE_KEY_OPTIONAL'		=> ($invite->config['enable_key'] == OPTIONAL) ? true : false,
			//Begin: Group on Registration and Custom Profile Fields
			'S_GROUP_OPTIONS'	=> ($config['groups_on_reg_enable']) ? reg_group_select($data['reg_group_id']) : false,
			//End: Group on Registration and Custom Profile Fields
		));
Sin embargo sigo teniendo el mismo mensaje de Error de SQL :( :

SQL ERROR [ mysql4 ]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '05 WHERE user_id = 178' at line 2 [1064]
Ocurrió un error SQL mientras recuperaba esta página. Por favor contacta con La Administración del Sitio si el problema persiste.

O sea, ambos MOD's ejecutan todos sus funciones pero al enviar el formulario de registro el usuario ve una pantalla que le dice que esta todo mal. :oops:

:nolose:

Agrego el ucp_register.php como es ahora:
ucp_register.php.zip
(5.49 KiB) Descargado 119 veces
And the day came when it took more risk to retain tightly closed as a bud than to bloom.
This is what's left, as our element of freedom.

Hasta luego, y gracias por el pescado. :cerveza:

Avatar de Usuario
RequeteChe
Asiduo/a
Mensajes: 163
Registrado: 17 Mar 2010, 06:33

Re: Integracion Groups on registration y Invita un Amigo

#3

Mensaje por RequeteChe »

He cambiado de MOD de invitacion. La nueva combinacion funciona.
Si bien me interesaria saber si el problema tuviera solucion y cual es el error que indica el mensaje, el problema en si resolvio.

Por mi parte considero este tema cerrado.
:dormido:
And the day came when it took more risk to retain tightly closed as a bud than to bloom.
This is what's left, as our element of freedom.

Hasta luego, y gracias por el pescado. :cerveza:

r.hunt
Observador/a
Mensajes: 31
Registrado: 28 Jul 2013, 18:10

Re: Integracion Groups on registration y Invita un Amigo

#4

Mensaje por r.hunt »

Que mod usaste??
URL: http://foro-pescar.com.ar
Versión phpBB: 3.0.11
MODs Instalados:
| Mostrar
Advanced BBCode Box 3 (aka ABBC3)
ReIMG Image Resizer
Tapatalk
Share On
Plantilla(s) usada(s): Prosilver
Servidor: NutHost
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Foro-Pescar

Cerrado

Volver a “Soporte de MODs”