Página 1 de 1

[Pedido] Add-on Mensajes Privados en Mchat

Publicado: 04 May 2013, 18:38
por ElSanguinario
Hola gente,
quería pediros, un add-on para enviar mensajes privados en Mchat.
los mensajes solo se muestren al emisor y receptor, y a los demás usuarios no les muestre dicho mensaje.

bueno desde ya agradezco vuestra Ayuda. Un Saludo y Paz... ;)

enlace al mood en datos de soporte, pestaña Mood instalados...

Re: [Pedido] Add-on Mensajes Privados en Mchat

Publicado: 04 May 2013, 18:50
por leviatan21
Como hace unos días que estoy trabajando en esto (porque hablamos de esta posibilidad en el chat), tengo todo listo y probado

Aclaro que este add-on no es sencillo y su nivel de dificultad es alto por requerir ejecutar una SQL copiar, reemplazar archivos y muchas ediciones, que si se llevan a cabo correctamente funciona muy bien.

Aqui vamos !

SQL: Ver nota 1 al pie

Código: Seleccionar todo

ALTER TABLE `phpbb_mchat` ADD `user_to` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0'
Abrir:

Código: Seleccionar todo

raiz/mchat.php
Buscar:

Código: Seleccionar todo

$mchat_read_mode = $mchat_archive_mode = $mchat_custom_page = $mchat_no_message = false;
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
$mchat_pm_to = request_var('pm_to', 0);
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

			$rows = $db->sql_fetchrowset($result);
							
			foreach($rows as $row)
			{
Despues, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
				if (($row['user_to'] !=0 ) && ($user->data['user_id'] != $row['user_to'] && $user->data['user_id'] != $row['user_id']))
				{
					continue;
				}
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

					'U_VIEWPROFILE'			=> ($row['user_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['user_id']) : '',
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
					'MCHAT_USER_ID'			=> ($row['user_id'] != ANONYMOUS) ? $row['user_id'] : 0,
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

		$rows = array_reverse($rows);
				
		foreach($rows as $row)
		{
Despues, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
			if (($row['user_to'] !=0 ) && ($user->data['user_id'] != $row['user_to'] && $user->data['user_id'] != $row['user_id']))
			{
				continue;
			}
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

				'U_VIEWPROFILE'			=> ($row['user_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['user_id']) : '',
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
				'MCHAT_USER_ID'			=> ($row['user_id'] != ANONYMOUS) ? $row['user_id'] : 0,
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

			'user_ip'			=> $user->data['session_ip'],
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
			'user_to'			=> $mchat_pm_to,
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

			'U_VIEWPROFILE'			=> ($row['user_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['user_id']) : '',
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
			'MCHAT_USER_ID'			=> ($row['user_id'] != ANONYMOUS) ? $row['user_id'] : 0,
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

				// auth check
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
				if (($row['user_to'] !=0 ) && ($user->data['user_id'] != $row['user_to'] && $user->data['user_id'] != $row['user_id']))
				{
					continue;
				}
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

					'U_VIEWPROFILE'			=> ($row['user_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['user_id']) : '',
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
					'MCHAT_USER_ID'			=> ($row['user_id'] != ANONYMOUS) ? $row['user_id'] : 0,
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

	'MCHAT_WHOIS'			=> $config_mchat['whois'],
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
	'L_MCHAT_PM'			=> addslashes('Privado'),
	'MCHAT_USER_ID'			=> $user->data['user_id'],
//	Add-on: PM message - END
Abrir: Ver nota 2 al pie

Código: Seleccionar todo

raiz/mchat/mchat_ajax.js
Buscar:

Código: Seleccionar todo

		if (answer)
		{
Despues, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
			mChatPrivateMessageTo=false;
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

				$jQ('#submit_button').attr('disabled','disabled');

				if (mChatUserTimeout)
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
				if (mChatPrivateMessageTo)
				{
					var re = new RegExp($jQ('#Match').val());
					if ($jQ('#mChatMessage').val().match(re))
					{
						this.data+='&pm_to='+mChatPrivateMessageTo;
					} else {
						mChatPrivateMessageTo = false;
					}
				}
//	Add-on: PM message - End
Buscar:

Código: Seleccionar todo

				// Empty message input
				$jQ('#mChatMessage').val('').focus();
Antes, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
				mChatPrivateMessageTo=false;
//	Add-on: PM message - END
Abrir: Ver nota 3 al pie

Código: Seleccionar todo

raiz/styles/prosilver/template/mchat_body.html
Buscar:

Código: Seleccionar todo

			var mChatFocusFix = true;
			<!-- ENDIF -->
Despues, agregar:

Código: Seleccionar todo

//	Add-on: PM message - START
			var mChatPrivateMessageTo = false;
//	Add-on: PM message - END
Buscar:

Código: Seleccionar todo

				<input type="hidden" name="mode" value="add" />
Antes, agregar:

Código: Seleccionar todo

				<input type="hidden" name="Match" id="Match" value="#(\s)\[{L_MCHAT_PM}\]" />
Buscar: (es posible que ya tengas este cambio hecho si instalaste algún otro add-on)

Código: Seleccionar todo

			<script type="text/javascript" src="{ROOT_PATH}mchat/mchat_ajax_mini.js"></script>
Reemplazar por:

Código: Seleccionar todo

			<script type="text/javascript" src="{ROOT_PATH}mchat/mchat_ajax.js"></script>
Abrir:

Código: Seleccionar todo

raiz/styles/prosilver/template/mchat_avatars.html
Buscar:

Código: Seleccionar todo

<!-- IF mchatrow.MCHAT_USERNAME_COLOR -->
Despues, agregar:

Código: Seleccionar todo

<!-- IF S_DISPLAY_PM --><a class="mChatScriptLink" href="#" onclick="insert_text('&#35;&nbsp;[{L_MCHAT_PM}], ', false);mChatPrivateMessageTo={mchatrow.MCHAT_USER_ID};return false;" title="{L_MCHAT_PM}"><span style="color: {mchatrow.MCHAT_USERNAME_COLOR}"><strong>&#35;</strong></span></a>&nbsp;<!-- ENDIF -->
Buscar:

Código: Seleccionar todo

<strong>&#64;</strong></span></a><!-- ELSE -->
Despues, agregar:

Código: Seleccionar todo

<!-- IF S_DISPLAY_PM --><a href="#" class="mChatScriptLink" onclick="insert_text('&#35;&nbsp;[{L_MCHAT_PM}], ', false);mChatPrivateMessageTo={mchatrow.MCHAT_USER_ID};return false;" title="{L_MCHAT_PM}"><strong>&#35;</strong></a>&nbsp;<!-- ENDIF -->
Buscar:

Código: Seleccionar todo

<strong>&#64;</strong></a><!-- ENDIF --><!-- ELSE -->
Despues, agregar:

Código: Seleccionar todo

<!-- IF S_DISPLAY_PM --><a href="#" class="mChatScriptLink" onclick="insert_text('&#35;&nbsp;[{L_MCHAT_PM}], ', false);mChatPrivateMessageTo={mchatrow.MCHAT_USER_ID};return false;" title="{L_MCHAT_RESPOND}">&#35;</a>&nbsp;<!-- ENDIF -->
NOTAS:
1) SQL Realizar el cambio en la DB con el STK -> HERRAMIENTAS DE ADMINISTRACION -> Ejecutar consulta SQL
2) Si no tienen el archivo raiz/mchat/mchat_ajax.js viene en el paquete original del MOD dentro de la carpeta /mchat_new_version_1_3_5/contrib/ y se usa en casos como este, donde se hacen cambios y/o add-ons y deben copiarlo a raiz/mchat/ para editarlo
3) Si no utilizan avatares en el mChat aplicar los mismos cambios de la plantilla raiz/styles/prosilver/template/mchat_avatars.html en la plantilla raiz/styles/prosilver/template/mchat_no_avatars.html

Re: [Pedido] Add-on Mensajes Privados en Mchat

Publicado: 04 May 2013, 19:54
por ElSanguinario
Probado Funciona perfectamente :rofl:

Mil Gracias máster. usted es un ¡¡¡Groso!!!

Re: [Pedido] Add-on Mensajes Privados en Mchat

Publicado: 04 May 2013, 20:12
por ThE KuKa
¡¡¡IMPRESIONANTE como siempre!!! :wink:

Re: [Pedido] Add-on Mensajes Privados en Mchat

Publicado: 03 Sep 2014, 04:36
por domainkey
Hola, hola :?

Sabe alguien si este Addon funciona para la ultima version de mchat 1.3.8?


slds

Re: [Pedido] Add-on Mensajes Privados en Mchat

Publicado: 13 Sep 2014, 01:43
por Nor7on
Buenas.

Yo tb estoy interesado en saber si funciona en la 1.3.8.

Ya que he querido instalarlo, pero hay un código que en la busqueda no coincide en ningún lado.

Me refiero al:

Código: Seleccionar todo

			$rows = $db->sql_fetchrowset($result);
							
			foreach($rows as $row)
			{
Lo que me aparece a mí es:

Código: Seleccionar todo

$rows = $db->sql_fetchrowset($result);
			$db->sql_freeresult($result);
							
			foreach($rows as $row)
			{
Y no sé si en el resto de códigos coincide, ya que no he conseguido avanzar.

Alguien puede explicarnos como instalarlo en la 1.3.8? o si tienen un link donde haya dicha información?

Saludos!

Re: [Pedido] Add-on Mensajes Privados en Mchat

Publicado: 13 Sep 2014, 02:12
por ElSanguinario
Hola Campañero.
Si, efectivamente. debes buscar estas lineas:

Código: Seleccionar todo

			$rows = $db->sql_fetchrowset($result);
			$db->sql_freeresult($result);
							
			foreach($rows as $row)
			{
si no coinciden las lineas siempre puedes consulta el code change en la carpeta contrib del mod en cuestión.

Saludos.

datos de Soporte Verificados

Re: [Pedido] Add-on Mensajes Privados en Mchat

Publicado: 13 Sep 2014, 02:47
por Nor7on
Bufff....

Hay cosas que no coinciden y es difícil de instalar, sobre todo al modificar los .js
haber si alguien tiene los .js ya editado listo para remplazar el predeterminado.

Saludos!

Re: [Pedido] Add-on Mensajes Privados en Mchat

Publicado: 13 Sep 2014, 04:01
por ElSanguinario
estos son los archivos original de la versión 1.3.8 modificados para el add-on.

Nota: si tu estilo no es prosilver, copia los archivos: /styles/prosilver/template/*.*
a /styles/tu-Estilo/templete/*.* (los archivos del mod)
la consulta la tienes que hacer desde el toolkit o desde tu panel de control de tu hostweb.