Página 1 de 1

Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 30 Abr 2013, 01:47
por ElSanguinario
Hola os molesto un Ratito más,
querías saber si es posible agregar una cuenta atrás para poder enviar otro mensaje en el Mod's Mchat.
en reemplazar el Botón enviar por Enviar por una Cuenta Atrás desde el tiempo deseado hasta el 0 y volver habilitar el botón enviar.

Bueno desde ya gracias. un Gran Saludo ;)

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 30 Abr 2013, 01:58
por leviatan21
ElSanguinario escribió:en reemplazar el Botón enviar por Enviar por una Cuenta Atrás desde el tiempo deseado hasta el 0 y volver habilitar el botón enviar.
Yo tengo una propuesta un poco diferente.

En lugar de cambiar el botón, hacer algo en el input y te explico el por que.

Si cambias el texto del botón [Enviar], el texto sobre el tiempo restante es largo y estaría cambiando constantemente de ancho y no queda estético ni practico.

para que lo entiendas te dejo una captura
Add-on_Flood_note_mChat.png
Add-on_Flood_note_mChat.png (56.07 KiB) Visto 2426 veces
Si te parece bien, te indico los pasos

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 30 Abr 2013, 02:08
por ElSanguinario
si me parece bien,
Gracias Master ;)

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 30 Abr 2013, 02:20
por leviatan21
Ah van los pasos:

Abrir:

Código: Seleccionar todo

raiz/mchat.php
Buscar:

Código: Seleccionar todo

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

Código: Seleccionar todo

//	Add-on: Flood note - START
	'MCHAT_FLOOD_TIME'			=> (!$mchat_no_flood && $config_mchat['flood_time']) ? 1000 * $config_mchat['flood_time'] : 0,
	'MCHAT_FLOOD_TIME_EXPLAIN'	=> addslashes('Podrás enviar tu próximo mensaje en %1$s Segundo(s)'),
//	Add-on: Flood note - END
Abrir:

Código: Seleccionar todo

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

Código: Seleccionar todo

			<!-- IF MCHAT_ARCHIVE_MODE -->
Antes, agregar:

Código: Seleccionar todo

//	Add-on: Flood note - START
			<!-- IF MCHAT_FLOOD_TIME -->
			var mChatFloodTime = '{MCHAT_FLOOD_TIME}';
			var mChatFloodTimeExplain = '{MCHAT_FLOOD_TIME_EXPLAIN}';
			<!-- ELSE -->
			var mChatFloodTime = false;
			var mChatFloodTimeExplain = '';
			<!-- ENDIF -->
//	Add-on: Flood note - END
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/mchat/mchat_ajax.js
Buscar:

Código: Seleccionar todo

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

Código: Seleccionar todo

			//	$jQ('#submit_button').attr('disabled','');
//	Add-on: Flood note - START
				$jQ('#submit_button').attr('disabled','disabled');
				$jQ('#mChatMessage').attr('disabled','disabled');
				var mChatFloodTimeOut = 0;
				var mChatSubmitValue = $jQ('#submit_button').val();
				var mChatFloodTimer = window.setInterval(function()
				{
					mChatFloodTimeOut+=1000; //	30000
					if (mChatFloodTimeOut >= mChatFloodTime)
					{
						$jQ('#submit_button').removeAttr('disabled');
						$jQ('#mChatMessage').removeAttr('disabled').val('');
						window.clearInterval(mChatFloodTimer);
					} else {
						$jQ('#mChatMessage').attr('value', mChatFloodTimeExplain.replace(/%1\$s/, ((mChatFloodTime-mChatFloodTimeOut)/1000)));
					}
				},1000);	//	1000 will  run it every 1 second	
//	Add-on: Flood note - END
Guardar los cambios, subir los archivos al servidor vía FTP y desde el ACP actualizar las plantillas para el estilo Prosilver

Nota: recuerda usar un editor que pueda guardar los cambios en formato UTF-8 sin BOM

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 30 Abr 2013, 02:42
por ElSanguinario
una duda, no poseeo el archivo raiz/mchat/mchat_ajax.js
mis archivos son:
jquery_cookie_mini.js
jquery-1.5.0.min.js
mchat_ajax_mini.js


la linea la encuentro pero parcial en el archivo: mchat_ajax_mini.js el problema es que es una linea entera y sigue os dejo el codigo.
borrar luego | Mostrar

Código: Seleccionar todo

var $jQ=jQuery;$jQ(function(){if(!mChatArchiveMode){var scrH=$jQ('#mChatmain')[0].scrollHeight;$jQ('#mChatmain').animate({scrollTop:scrH},1000,'swing');if(mChatPause){$jQ('#mChatMessage').bind('keypress',function(){clearInterval(interval);$jQ('#mChatLoadIMG,#mChatOkIMG,#mChatErrorIMG').hide();$jQ('#mChatRefreshText').html(mChatRefreshNo).addClass('mchat-alert');$jQ('#mChatPauseIMG').show()})}$jQ.fn.preventDoubleSubmit=function(){var alreadySubmitted=false;return $jQ(this).submit(function(){if(alreadySubmitted){return false}else{alreadySubmitted=true}})};$jQ.fn.autoGrowInput=function(o){var width=$jQ('.mChatPanel').width();o=$jQ.extend({maxWidth:width-20,minWidth:0,comfortZone:20},o);this.filter('input:text').each(function(){var minWidth=o.minWidth||$jQ(this).width(),val='',input=$jQ(this),testSubject=$jQ('<div/>').css({position:'absolute',top:-9999,left:-9999,width:'auto',fontSize:input.css('fontSize'),fontFamily:input.css('fontFamily'),fontWeight:input.css('fontWeight'),letterSpacing:input.css('letterSpacing'),whiteSpace:'nowrap'}),check=function(){if(val===(val=input.val())){return}var escaped=val.replace(/&/g,'&').replace(/\s/g,' ').replace(/</g,'<').replace(/>/g,'>');testSubject.html(escaped);var testerWidth=testSubject.width(),newWidth=(testerWidth+o.comfortZone)>=minWidth?testerWidth+o.comfortZone:minWidth,currentWidth=input.width(),isValidWidthChange=(newWidth<currentWidth&&newWidth>=minWidth)||(newWidth>minWidth&&newWidth<o.maxWidth);if(isValidWidthChange){input.width(newWidth)}};testSubject.insertAfter(input);$jQ(this).bind('keypress blur change submit focus',check)});return this};$jQ('input.mChatText').autoGrowInput();$jQ('#postform').preventDoubleSubmit();if(mChatSound&&$jQ.cookie('mChatNoSound')!='yes'){$jQ.cookie('mChatNoSound',null);$jQ('#mChatUseSound').attr('checked','checked')}else{$jQ.cookie('mChatNoSound','yes');$jQ('#mChatUseSound').removeAttr('checked')}if($jQ('#mChatUserList').length&&($jQ.cookie('mChatShowUserList')=='yes'||mChatCustomPage)){$jQ('#mChatUserList').show()}}});var mChat={countDown:function(){if($jQ('#mChatSessMess').hasClass('mchat-alert')){$jQ('#mChatSessMess').removeClass('mchat-alert')}session_time=session_time-1;var sec=Math.floor(session_time);var min=Math.floor(sec/60);var hrs=Math.floor(min/60);sec=(sec%60);if(sec<=9){sec="0"+sec}min=(min%60);if(min<=9){min="0"+min}hrs=(hrs%60);if(hrs<=9){hrs="0"+hrs}var time_left=hrs+":"+min+":"+sec;$jQ('#mChatSessMess').html(mChatSessEnds+' '+time_left);if(session_time<=0){clearInterval(counter);$jQ('#mChatSessMess').html(mChatSessOut).addClass('mchat-alert')}},clear:function(){if($jQ('#mChatMessage').val()==''){return false}var answer=confirm(mChatReset);if(answer){if($jQ('#mChatRefreshText').hasClass('mchat-alert')){$jQ('#mChatRefreshText').removeClass('mchat-alert')}if(mChatPause){interval=setInterval(function(){mChat.refresh()},mChatRefresh)}$jQ('#mChatOkIMG').show();$jQ('#mChatLoadIMG, #mChatErrorIMG, #mChatPauseIMG').hide();$jQ('#mChatRefreshText').html(mChatRefreshYes);$jQ('#mChatMessage').val('').focus()}else{$jQ('#mChatMessage').focus()}},sound:function(file){if($jQ.cookie('mChatNoSound')=='yes'){return}if($jQ.browser.msie){$jQ('#mChatSound').html('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" height="0" width="0" type="application/x-shockwave-flash"><param name="movie" value="'+file+'"></object>')}else{$jQ('#mChatSound').html('<embed src="'+file+'" width="0" height="0" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>')}},toggle:function(id){$jQ('#mChat'+id).slideToggle('normal',function(){if($jQ('#mChat'+id).is(':visible')){$jQ.cookie('mChatShow'+id,'yes')}if($jQ('#mChat'+id).is(':hidden')){$jQ.cookie('mChatShow'+id,null)}})},add:function(){if($jQ('#mChatMessage').val()==''){return false}var mChatMessChars=$jQ('#mChatMessage').val().replace(/ /g,'');if(mChatMessChars.length>mChatMssgLngth&&mChatMssgLngth){alert(mChatMssgLngthLong);return}$jQ.ajax({url:mChatFile,timeout:10000,type:'POST',data:$jQ('#postform').serialize(),dataType:'text',beforeSend:function(){$jQ('#submit_button').attr('disabled','disabled');if(mChatUserTimeout){clearInterval(activeinterval);clearInterval(counter)}clearInterval(interval)},success:function(){mChat.refresh()},error:function(XMLHttpRequest){if(XMLHttpRequest.status==400){alert(mChatFlood)}else if(XMLHttpRequest.status==403){alert(mChatNoAccess)}else if(XMLHttpRequest.status==501){alert(mChatNoMessageInput)}},complete:function(){if($jQ('#mChatData').children('#mChatNoMessage :last')){$jQ('#mChatNoMessage').remove()}$jQ('#submit_button').attr('disabled','');interval=setInterval(function(){mChat.refresh()},mChatRefresh);if(mChatUserTimeout){session_time=mChatUserTimeout?mChatUserTimeout/1000:false;counter=setInterval(function(){mChat.countDown()},1000);activeinterval=setInterval(function(){mChat.active()},mChatUserTimeout)}$jQ('#mChatMessage').val('').focus()}})},edit:function(id){var message=$jQ('#edit'+id).val();var data=prompt(mChatEditInfo,message);if(data){$jQ.ajax({url:mChatFile,timeout:10000,type:'POST',data:{mode:'edit',message_id:id,message:data},dataType:'text',beforeSend:function(){clearInterval(interval);if(mChatUserTimeout){clearInterval(activeinterval);clearInterval(counter);$jQ('#mChatSessTimer').html(mChatRefreshing)}},success:function(html){$jQ('#mess'+id).fadeOut('slow',function(){$jQ(this).replaceWith(html);$jQ('#mess'+id).css('display','none').fadeIn('slow')})},error:function(XMLHttpRequest){if(XMLHttpRequest.status==403){alert(mChatNoAccess)}else if(XMLHttpRequest.status==501){alert(mChatNoMessageInput)}},complete:function(){interval=setInterval(function(){mChat.refresh()},mChatRefresh);if(mChatUserTimeout){session_time=mChatUserTimeout?mChatUserTimeout/1000:false;counter=setInterval(function(){mChat.countDown()},1000);activeinterval=setInterval(function(){mChat.active()},mChatUserTimeout)}if(!mChatArchiveMode){scrH=$jQ('#mChatmain')[0].scrollHeight;window.setTimeout(function(){$jQ('#mChatmain').animate({scrollTop:scrH},1000,'swing')},1500)}}})}},del:function(id){if(confirm(mChatDelConfirm)){$jQ.ajax({url:mChatFile,timeout:10000,type:'POST',data:{mode:'delete',message_id:id},beforeSend:function(){clearInterval(interval);if(mChatUserTimeout){clearInterval(activeinterval);clearInterval(counter);$jQ('#mChatSessTimer').html(mChatRefreshing)}},success:function(){$jQ('#mess'+id).fadeOut('slow',function(){$jQ(this).remove()});mChat.sound(mChatForumRoot+'mchat/del.swf')},error:function(){alert(mChatNoAccess)},complete:function(){interval=setInterval(function(){mChat.refresh()},mChatRefresh);if(mChatUserTimeout){session_time=mChatUserTimeout?mChatUserTimeout/1000:false;counter=setInterval(function(){mChat.countDown()},1000);activeinterval=setInterval(function(){mChat.active()},mChatUserTimeout)}}})}},refresh:function(){if(mChatArchiveMode){return}var mess_id=0;if($jQ('#mChatData').children().not('#mChatNoMessage').length){if($jQ('#mChatNoMessage')){$jQ('#mChatNoMessage').remove()}mess_id=$jQ('#mChatData').children(':last-child').attr('id').replace('mess','')}var oldScrH=$jQ('#mChatmain')[0].scrollHeight;$jQ.ajax({url:mChatFile,timeout:10000,type:'POST',data:{mode:'read',message_last_id:mess_id},dataType:'html',beforeSend:function(){$jQ('#mChatOkIMG,#mChatErrorIMG,#mChatPauseIMG').hide();$jQ('#mChatLoadIMG').show()},success:function(html){if(html!=''&&html!=0){if($jQ('#mChatRefreshText').hasClass('mchat-alert')){$jQ('#mChatRefreshText').removeClass('mchat-alert')}$jQ('#mChatData').append(html).children(':last').not('#mChatNoMessage');var newInner=$jQ('#mChatData').children().not('#mChatNoMessage').innerHeight();var newH=oldScrH+newInner;$jQ('#mChatmain').animate({scrollTop:newH},'slow');mChat.sound(mChatForumRoot+'mchat/add.swf')}setTimeout(function(){$jQ('#mChatLoadIMG,#mChatErrorIMG,#mChatPauseIMG').hide();$jQ('#mChatOkIMG').show();$jQ('#mChatRefreshText').html(mChatRefreshYes)},500)},error:function(){$jQ('#mChatLoadIMG,#mChatOkIMG,#mChatPauseIMG,#mChatRefreshTextNo,#mChatPauseIMG,').hide();$jQ('#mChatErrorIMG').show();mChat.sound(mChatForumRoot+'mchat/error.swf')},complete:function(){if(!$jQ('#mChatData').children(':last').length){$jQ('#mChatData').append('<div id="mChatNoMessage">'+mChatNoMessage+'</div>').show('slow')}}})},stats:function(){if(!mChatWhois){return}$jQ.ajax({url:mChatFile,timeout:10000,type:'POST',data:{mode:'stats'},dataType:'html',beforeSend:function(){if(mChatCustomPage){$jQ('#mChatRefreshN').show();$jQ('#mChatRefresh').hide()}},success:function(stats){$jQ('#mChatStats').replaceWith(stats);if(mChatCustomPage){setTimeout(function(){$jQ('#mChatRefreshN').hide();$jQ('#mChatRefresh').show()},500)}},error:function(){mChat.sound(mChatForumRoot+'mchat/error.swf')},complete:function(){if($jQ('#mChatUserList').length&&($jQ.cookie('mChatShowUserList')=='yes'||mChatCustomPage)){$jQ('#mChatUserList').css('display','block')}}})},active:function(){if(mChatArchiveMode||!mChatUserTimeout){return}clearInterval(interval);$jQ('#mChatLoadIMG,#mChatOkIMG,#mChatErrorIMG').hide();$jQ('#mChatPauseIMG').show();$jQ('#mChatRefreshText').html(mChatRefreshNo).addClass('mchat-alert');$jQ('#mChatSessMess').html(mChatSessOut).addClass('mchat-alert')}};var interval=setInterval(function(){mChat.refresh()},mChatRefresh);var statsinterval=setInterval(function(){mChat.stats()},mChatWhoisRefresh);var activeinterval=setInterval(function(){mChat.active()},mChatUserTimeout);var session_time=mChatUserTimeout?mChatUserTimeout/1000:false;if(mChatUserTimeout){var counter=setInterval(function(){mChat.countDown()},1000)}if($jQ.cookie('mChatShowSmiles')=='yes'&&$jQ('#mChatSmiles').css('display','none')){$jQ('#mChatSmiles').slideToggle('slow')}if($jQ.cookie('mChatShowBBCodes')=='yes'&&$jQ('#mChatBBCodes').css('display','none')){$jQ('#mChatBBCodes').slideToggle('slow')}if($jQ.cookie('mChatShowUserList')=='yes'&&$jQ('#mChatUserList').length){$jQ('#mChatUserList').slideToggle('slow')}if($jQ.cookie('mChatShowColour')=='yes'&&$jQ('#mChatColour').css('display','none')){$jQ('#mChatColour').slideToggle('slow')}$jQ('#mChatUseSound').change(function(){if($jQ(this).is(':checked')){$jQ.cookie('mChatNoSound',null)}else{$jQ.cookie('mChatNoSound','yes')}});

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 30 Abr 2013, 02:57
por leviatan21
ElSanguinario escribió:una duda, no poseeo el archivo raiz/mchat/mchat_ajax.js
Me olvidé de comentarlo cuando hice esta nota:
leviatan21 escribió:(es posible que ya tengas este cambio hecho si instalaste algún otro add-on)
El archivo 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

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 30 Abr 2013, 03:33
por ElSanguinario
va de maravilla y no martinez :jaja: debería de agregarlo a modo de guía y ponedlo en la biblioteca ;)
marco como solucionado ;)

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 30 Abr 2013, 04:03
por leviatan21
ElSanguinario escribió:va de maravilla y no martinez :jaja:
jajaajaja... chista para los de acá...

me alegro que sea lo que buscabas y que funcione.

hasta la proxima :P

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 01 May 2013, 20:43
por leviatan21
Corregido el código del archivo

Código: Seleccionar todo

raiz/mchat.php

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 02 May 2013, 03:15
por ElSanguinario
leviatan21 escribió:Corregido el código del archivo

Código: Seleccionar todo

raiz/mchat.php
perdon máster que error tenía ?

Re: Cuenta Atrás para enviar otro mensaje en Mchat.

Publicado: 02 May 2013, 03:31
por leviatan21
Sin un usuario o grupo tenía permitido evitar el control sobre el flood, el add-on no lo tenia en cuenta