16May 2010 21 Comments */?>

Como usar AJAX Auto Suggest V2.0

Categorías: Recursos, Tutoriales - Tags: ,

AJAX Autosuggest v2

Yo personalmente las pocas veces que he implementado un Auto Suggest o caja de sugerencias en mis proyectos he utilizado AJAX Auto Suggest V2.0. No es que haya probado muchos , pero en su día este fue el que más me convencio por su facilidad de uso y de personalización.

Para utilizarlo primero debemos incluir sus archivos:

1
2
3
<link type="text/css" rel="stylesheet" href="autosuggest_inquisitor.css">
 
<script src="bsn.AutoSuggest_2.1.3.js" type="text/javascript"></script>

Crear un campo de texto y asignarle un Id:

1
2
 
<input type="text" style="width: 200px; color: rgb(204, 204, 204);" id="materiales_input" name="materiales" autocomplete="off">

Luego definimos algunas opciones y creamos el objeto autosuggest:

1
2
3
4
5
6
7
8
9
10
11
function autosuggest(){
var options = {
	script: "get_materiales.php?limit=6&",//página la cual recibirá la llamada AJAX
	varname: "materiales",// nombre de la variable que contendra el valor escrito
	json:false,//Podemos elegir JSON o XML
	maxresults:10,//Un máximo de resulados para mostrar
       timeout:9999,//numero en milisegundos antes de que se cierre la lista de valores sugeridos
	noresults:'Ingresar nuevo material a la base de datos' //valor que muestra en caso de no encontrar resultados
};
var as = new bsn.AutoSuggest('materiales_input',  options); //creamos el objeto AutoSuggest
}

Para más opciones consultar la página del autor.

Llamamos a la función cuando cargue la página:

1
<body onload="autosuggest();">

Por último creamos un archivo PHP que devuelva los resultados de búsqueda(en este caso XML) para que se muestren en las sugerencias.

get_materiales.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<? 
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Fecha del pasado 
	header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // siempre modificado
	header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
	header ("Pragma: no-cache"); // HTTP/1.0
 
include_once('config/db.php'); 
$conn=get_db_conn();
$input=utf8_decode(cleanQuery($_GET['materiales']));
$query='SELECT * FROM categoria_materiales WHERE nombreMaterial LIKE \'%'.$input.'%\'';
$materiales=mysql_query($query,$conn);
 
if (isset($_REQUEST['json']))
	{
		header("Content-Type: application/json" );
 
		echo "{\"results\": [";
		$arr = array();
		while ($row=mysql_fetch_assoc($materiales))
		{
 
			$arr[] = "{\"id\": \"".$row['idCatMaterial']."\", \"value\": \"".$row['nombreMaterial']."\", \"info\": \"\"}";
		}
		echo implode(", ", $arr);
		echo "]}";
	}
	else
	{
header("Content-Type: text/xml");
 
		echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?><results>";
		while ($row=mysql_fetch_assoc($materiales))
		{
 
			echo "<rs id=\"".$row['idCatMaterial']."\" info=\"\">".$row['nombreMaterial']."</rs>";
		}
		echo "</results>";
 
	}	
 
	?>

Explicando get_materiales.php:


Formato XML:

1
2
3
4
5
<results>
	<rs id="1" info="Cheshire">Foobar</rs>
	<rs id="2" info="">Foobarfly</rs>
	<rs id="3" info="">Foobarnacle</rs>
</results>


Formato JSON:

1
2
3
4
5
{ results: [
	{ id: "1", value: "Foobar", info: "Cheshire" },
	{ id: "2", value: "Foobarfly", info: "" },
	{ id: "3", value: "Foobarnacle", info: "Essex" }
] }

Como anotacíon en mi caso al enviar el formulario compruebo si el material ingresado existe en la base de datos y sino existe lo agrego. Por ese motivo en noresults muestro el mensaje de “Añadir a la base de datos”.Para ello hago lo siguiente:

1
2
3
4
5
6
7
8
9
10
<?
include_once('db.php'); 
$conn=get_db_conn();
if($_POST['materiales']!=''){
    $material=cleanQuery($_POST['materiales']);
	$existe=mysql_query("SELECT * FROM materiales WHERE nombreMaterial ='$material'",$conn);
					if (mysql_num_rows($existe) == 0) mysql_query("INSERT INTO materiales (nombreMaterial) VALUES ('$material')",$conn);	  
 
}
?>

Con todo esto tendriamos el autosuggest o caja de sugerencias funcionando a la perfección.

Pueden ver un EJEMPLO FUNCIONANDO
O tambien DESCARGARSE EL CÓDIGO

Un saludo a todos, espero sus comentarios!

11May 2010 1 Comment */?>

Millions eLottery para eRepublik

Categorías: Juegos - Tags: ,

eLotteryPara quien no conosca eRepublik decirles que es un juego online que vengo jugando 1 mes o cosa así. Al principio aburria un poco pero las opciones van aumentando a medida que uno juega. Basicamente se trata de un mundo online , donde uno trabaja , come, o lucha por su pais (en mi caso Argentina). Además con el tiempo uno puede crear sus propias companias , organizaciones o partidos políticos pudiendo llegar a ser un magnate de los negocios o presidente del pais.

El caso es que el otro día andaba aburrido y se me ocurrio crear un sistema de loteria para eRepublik basado en los números ganadores de la famosa lotería española ONCE (www.once.es).

Así es como nacio Millions eLottery. Si algun día les da por jugar , no se olviden que tienen la oportunidad de hacerse eMillonarios 😀

Saludoss

PD:Si son nuevos usen ESTE LINK para registrarse así me dan un poco de ORO 😛

01May 2010 3 Comments */?>

JQuery nightMode Plugin

Categorías: JQuery, Plugins jQuery - Tags: , ,

Download JQuery nightMode Plugin

/////////////////////////ESPAÑOL //////////////////////

Anoche estaba aburrido y me puse a trabajar en un plugin para JQuery ya que nunca habia echo ninguno . Así nacio nightMode Plugin que es simplemente un script chiquitito que cambia el color de las letras y el fondo de pantalla. Con eso logramos ahorrar un poco de energia apagando algunos pixeles de nuestra pantalla y además nos facilita la lectura. Espero que les guste!!

El color tanto de las letras o el fondo se puede cambiar pasando opciones.

Uso:

1
 <a id="nightmode">Turn nightmode On/off</a>
1
2
3
4
5
6
 $(document).ready(function(){
 
               $('#nightmode').click(function(){
                           $('body').nightMode();
                });
 });

Tan solo cambiar body por cualquier selector válido

También se puede ejecutar con opciones

1
2
3
4
5
 var options={
      color: '#ffffff',
     background:'#ccc'
 }
 $('body').nightMode(options);

Pueden probar como funciona haciendo click en la lamparita que aparece en la parte superior derecha de mi blog 😀

Descargar JQuery nightMode Plugin

////////////////////////ENGLISH/////////////////////////////

JQuery nightMode Plugin
its a funny tiny plugin that will allow you to change your background and letter colors for a night mode. Saving energy turning off pixels of your screen and allowing you to have a confortable read .

Letter colors and background can be moddified by options

Ussage:

1
 <a id="nightmode">Turn nightmode On/off</a>
1
2
3
4
5
6
 $(document).ready(function(){
 
               $('#nightmode').click(function(){
                           $('body').nightMode();
                });
 });

Just change body to any valid selector you wish

Can also be called with options:

1
2
3
4
5
 var options={
      color: '#ffffff',
      background:'#ccc'
 }
 $('body').nightMode(options);

You can try how it works by clicking on the light bulb on the top right corner of my blog 😀
Download JQuery nightMode Plugin

19Abr 2010 25 Comments */?>

Windows 7 Dispositivos e Impresoras (Devices and Printers)

Categorías: Windows - Tags:

No suelo dar soluciones a Windows en mi blog pero este problema me hizo perder bastante tiempo, y lo quiero compartir con ustedes.
Mi abuelo del cual estoy orgulloso por como usa la computadora y chatea con 81 años , tambien es un genio en crearme problemas al estropear su maquina de las formas menos pensadas.

La ultima que se mandó fue que misteriosamente su panel de Dispositivos e Impresoras dejó de funcionar. Cuando hace click en el, aparece una ventana MS-DOS que se cierra al instante y la ventana de Dispositivos e Impresoras queda en blanco cargando por la eternidad.

Para mucha gente este problema es debido al servicio de BLUETOOTH ( aunque no tuvieran un bluetooth instalado ) y para ello lo solucionaban facilmente haciendo los siguientes pasos.

[cc]
Ir a Inicio, en la barra de búsqueda escribir “servicios” y luego enter.
En el panel de servicios, buscar el servicio llamado “Servicio de compatibilidad con Bluetooth”.
Dar doble-click en el, en el cuadro de dialogo, en la parte donde dice Tipo de inicio: Manual, cambiarlo a autómatico.

[/cc]
Al tener en autómatico el servicio windows despejará el problema y se solventa el problema de que se quedaba tildado en bluetooth, dispositivos e impresoras y la desconexion de los dispositivos usb.

Bien , yo fui uno de los cuantos que despues de realizar estos pasos siguió todo igual.Así que segui buscando soluciones y soluciones. Hasta probe un archivo de explorer8-reged.cmd que tampoco hizo nada.

Despues de investigar un par de dias llegué a la conclusión de que el archivo DeviceDisplayObjectProvider.exe estaba corrupto y me decidí a sustituirlo por uno que funcione. Pero esto tampoco fue sencillo , así que les dejo los pasos a continuación.

Primero tenemos que tomar control del archivo de la siguiente forma: (Abrir ventana MS-DOS escribiendo cmd en tu barra de búsqueda)
[cc]
takeown /f C:\Windows\System32\DeviceDisplayObjectProvider.exe
[/cc]
Eso nos va a convertir en propietarios del archivo , aunque aun no tendremos derechos sobre el. Para ello hacemos:(modificar TuNombreDeUsuario con lo que corresponda)
[cc]

cacls C:\Windows\System32\DeviceDisplayObjectProvider.exe /G TuNombreDeUsuario:F

[/cc]
Ahora ya podremos borrar el archivo corrupto y copiar el archivo correcto

[cc]
cd C:\Windows\System32\
rename DeviceDisplayObjectProvider.exe DeviceDisplayObjectProvider.old

copy c:\ubicacionDelArchivoDescargado\DeviceDisplayObjectProvider.exe C:\Windows\System32\DeviceDisplayObjectProvider.exe
[/cc]

UPDATE : Hacer lo mismo con DeviceCentral.dll y DMRC.dll

DECARGAR DeviceDisplayObjectProvider.exe
Reiniciamos el PC y si todo salió bien . Volveremos a tener funcionando Dispositivos e Impresoras. Saludos a todos!!!!!

/////////////////////////ENGLISH VERSION//////////////////////////////////

Lot of people is having problems with devices and printers in Windows 7. Most of them fix the problem by changing the BLUETOOTH services by doing this:

[cc]
Click Start button, type “services” into the search program and files box.
This brings up a list in the menu, select Services.
This should open a list of local services on your system.., Find ‘Bluetooth Service” and make sure it has started.
Right click and set to ‘automatic’ (mine was already set), Select “Bluetooth Support Service” and start, set to automatic (mine was set on manual) —
[/cc]

After a restart most of users solved their problem. Anyway this was not my case. After several days looking for a solution i discover that my DeviceDisplayObjectProvider.exe file was corrupted. So here you have the steps to replace it with a working version.

First open a MS-DOS windows typen CMD in you search bar.
To take ownership of the file, you’ll need to use the takeown command. Here’s an example:

[cc]
takeown /f C:\Windows\System32\DeviceDisplayObjectProvider.exe
[/cc]
That will give you ownership of the file, but you still have no rights to delete it. Now you can run the cacls command to give yourself full control rights to the file:(change YourUsername with yours)
[cc]

cacls C:\Windows\System32\DeviceDisplayObjectProvider.exe /G YourUsername:F

[/cc]
Now we are able to rename the file and copy the working file

[cc]
rename DeviceDisplayObjectProvider.exe DeviceDisplayObjectProvider.old

copy c:\DownloadedFileLocation\DeviceDisplayObjectProvider.exe C:\Windows\System32\DeviceDisplayObjectProvider.exe
[/cc]
UPDATE :Do the same with DeviceCentral.dll and DMRC.dll
DOWNLOAD DeviceDisplayObjectProvider.exe
Now lets do a restart and if everything is ok we should have working devices and printers again

06Abr 2010 34 Comments */?>

Acentos y caracteres especiales con Ajax y JQuery II parte

Categorías: JQuery - Tags: ,

Hace un tiempo escribí un post acerca de los acentos y caracteres especiales con AJAX y JQuery que explicaba como salvar este problema en los formularios enviados por AJAX.

El problema es que esta solución no abarca cuando con JQuery hacemos un .load() de información con AJAX y para variar nos salen cuadraditos o rombos negros con un signo de interrogación adentro. con caracteres como á, é, í, ó, ú ,Á, É, Í, Ó, Ú, ñ, Ñ ,º ,ö, Ö, ü, Ü, etc

Para salvar esto tan solo tenemos que configurar JQuery.ajax() de la siguiente forma:

1
2
3
4
5
6
 
$.ajaxSetup({
'beforeSend' : function(xhr) {
xhr.overrideMimeType('text/html; charset=iso-8859-1');
}
});

Con esa opción forzamos que el encabezado de respuesta sea iso-8859-1 y no UTF-8.

UPDATE:

Este método solo funciona con FF ya que IE no soporta xhr.overrideMimeType como bien comento Ignacio en los comentarios. Una forma de solucionar esto es hacer lo siguiente:
Modificar el codigo inicial

1
2
3
4
5
6
7
8
9
10
$.ajaxSetup({
'beforeSend' : function(xhr) {
try{
xhr.overrideMimeType('text/html; charset=iso-8859-1');
}
catch(e){
 
 
}
}});

Y luego hay que agregar en nuestro archivo PHP

1
<?php header( 'Content-type: text/html; charset=iso-8859-1' );?>

Mandando el encabezado con PHP lograremos que funcione en IE. Un saludo , hagan pruebas y comenten que yo no tuve mucho tiempo.

UPDATE II:
Ignacio comenta que para ASP habria que usar el metodo :
Response.ContentType=”text/html; charset=iso-8859-1?

Un saludo espero que les haya servido de ayuda.

06Mar 2010 2 Comments */?>

Buscador por Relevancia con mysql para tu web

Categorías: MySQL, Recursos - Tags:

Ando perdido últimamente, y practicamente no actualizo el blog. Eso es debido a que estoy inmerso en un Proyecto grande, con lanzamiento en varios paises al mismo tiempo y ocupo TODO mi tiempo libre y el que no tengo también en el. Pronto (espero) le voy a decir de que se trata.

Volviendo al tema original del post, les voy a enseñar como hacer un buscador por relevancia con mysql.
La forma tradicional que usamos al buscar con mysql es con el comando LIKE

SELECT * FROM anuncios WHERE titulo LIKE '%perro%' OR descripcion LIKE '%perro%'

Esto nos devuelve todos los anuncios que en el titulo o en la descripcion aparezca la palabra ‘perro’ o ‘caraperro’ o cualquier otra que contenga ‘perro’.
Estos resultado podriamos ordenarlos por ejemplo por la fecha de publicación, por el titulo, etc.

Pero que pasa cuando queremos ordenarlo por RELEVANCIA, osea queremos que el anuncio que hable más de perros aparesca primero y asi consecutivamente. Aqui es donde entra en juego la funcion de mysql FULL-TEXT .

Lo primero que tenemos que hacer antes de hacer un query en convertir nuestros campos en full-text .Para ello simplemente hacemos:

ALTER TABLE anuncios ADD FULLTEXT(titulo, descripcion);

Una ves echo esto , a la hora de hacer la QUERY vamos a usar las funciona de fulltext search MATCH y AGAINST de la siguiente manera:

SELECT * FROM anuncios WHERE MATCH(titulo, descripcion) AGAINST ('perro')

Esta línea utiliza la función MATCH … AGAINST … que encuentra el texto buscado, usando consultas similares a como lo hacen los motores de búsqueda. Además, se calcula internamente una puntuación en función de como aparecen y la cantidad de términos buscados dentro de nuestro titulo y descripcion.

¿Como perfeccionar la busqueda?

SELECT * , MATCH (titulo,descripcion) AGAINST ('perro') AS puntuacion FROM anuncios WHERE MATCH (titulo, descripcion) AGAINST ('perro') ORDER BY puntuacion DESC LIMIT 50

Esta consulta devolverá las primeras 50 consultas ordenadas por la puntuación. Jugando un poco con CSS pueden lograr mostrar estrellitas o barras de progreso segun la puntuación, pero ese ya es otro tema aparte.

Como todo esto tiene alguna limitación que otra. Por ejemplo no toma en cuenta palabras con menos de 4 caracteres.

De todas formas es la forma mas eficiente y rapida de buscar , sobre todo con múltiples palabras.

Un saludo y espero que les haya servido

26Feb 2010 2 Comments */?>

Posiblemente el mejor hosting de todos

Categorías: Noticias, Recursos - Tags:

La busqueda del mejor y más barato hosting del mundo es algo que nunca termina. Yo personalmente en cuanto a prestaciones, soporte y precio por ahora me quedo con HOSTGATOR, el hosting con mayor clientes en el mundo.

De los Cpanel que trae es el más completo que me he encontrado y admite todas y cada una de las últimas configuraciones como cron jobs, mod_rewrite,curl_exec y todas esas cosas que no aparecen en la letra pequeña a la hora de contratar un hosting.

Además por un precio muy economico se pueden agregar dominios ilimitados y despuer ir agrandando según las necesidades que vayan apareciendo.
A partir de ahora haciendo click en cualquiera de los enlaces que aperecen a continuación si introduces el cupon de descuento al realizar la compra te otorgará el descuento.

Y ahora lo mejor de todo, cupones de descuento para que te salga practicamente gratis el primer mes.
Viejos pero sirven casi todos. Son de descuento de 9,94 dolares
hgc25 $9.94
cnet $9.94
GAMERZ $9.94
top10 $9.94
sa101 $9.94
freetrial $9.94
tophost $9.94

Otros si pagamos mucho de golpe ( Los cupones son GREEN o THANKYOU)
Hatchling Coupon – GREEN (saves $35.64 when paid for 3 years)
Baby Coupon – GREEN (saves $57.24 when paid for 3 years)
Business Coupon – GREEN (saves $93.24 when paid for 3 years)
Aluminum Coupon – GREEN (saves $35.88 when paid for 1 year)
Copper Coupon – GREEN (saves $83.88 when paid for 1 year)
Silver Coupon – GREEN (saves $119.88 when paid for 1 year)
Gold Coupon – GREEN (saves $179.88 when paid for 1 year)
Diamond Coupon – GREEN (saves $239.88 when paid for 1 year)
VPS Level 1 Coupon – THANKYOU (saves $9.98 when paid for 1 month)
VPS Level 2 Coupon – THANKYOU (saves $14.98 when paid for 1 month)
VPS Level 3 Coupon – THANKYOU (saves $19.97 when paid for 1 month)
VPS Level 4 Coupon – THANKYOU (saves $34.97 when paid for 1 month)
VPS Level 5 Coupon – THANKYOU (saves $47.47 when paid for 1 month)
VPS Level 6 Coupon – THANKYOU (saves $59.97 when paid for 1 month)
VPS Level 7 Coupon – THANKYOU (saves $74.98 when paid for 1 month)
VPS Level 8 Coupon – THANKYOU (saves $89.98 when paid for 1 month)
VPS Level 9 Coupon – THANKYOU (saves $104.98 when paid for 1 month)
Linux Basic Dedicated Server Coupon – GREEN (saves $34.80 when paid for 1 month)
Windows Basic Dedicated Server Coupon – GREEN (saves $34.80 when paid for 1 month)
Linux Standard Dedicated Server Coupon – GREEN (saves $43.80 when paid for 1 month)
Windows Standard Dedicated Server Coupon – GREEN (saves $43.80 when paid for 1 month)
Linux Elite Dedicated Server Coupon – GREEN (saves $55.80 when paid for 1 month)
Windows Elite Dedicated Server Coupon – GREEN (saves $55.80 when paid for 1 month)
Linux Pro Dedicated Server Coupon – GREEN (saves $74.80 when paid for 1 month)
Windows Pro Dedicated Server Coupon – GREEN (saves $74.80 when paid for 1 month)

Más cupones con 9,94 dolares de descuento

Hostgator Coupon Code : WEBHOSTING
Hostgator Coupon Code : JURY
Hostgator Coupon Code : FINDMYHOST
Hostgator Coupon Code : TOPHOST
Hostgator Coupon Code : HGC25
Hostgator Coupon Code : 404PAGE
Hostgator Coupon Code : HOSTGATOR
Hostgator Coupon Code : WORDPRESS
Hostgator Coupon Code : ICEISHOT
Hostgator Coupon Code : CO_NR
Hostgator Coupon Code : HGNEWS01
Hostgator Coupon Code : HGNEWS02
Hostgator Coupon Code : HGNEWS03
Hostgator Coupon Code : HGNEWS04
Hostgator Coupon Code : HGNEWS05
Hostgator Coupon Code : HGNEWS06
Hostgator Coupon Code : HGNEWS07
Hostgator Coupon Code : HGNEWS08
Hostgator Coupon Code : HGNEWS09
Hostgator Coupon Code : HGNEWS10
Hostgator Coupon Code : HGNEWS11
Hostgator Coupon Code : HGNEWS12
Hostgator Coupon Code : AUTUMN
Hostgator Coupon Code : BEACH
Hostgator Coupon Code : SPRING
Hostgator Coupon Code : VALENTINE
Hostgator Coupon Code : SPOOKY
Hostgator Coupon Code : SNOWMAN
Hostgator Coupon Code : NEWYEAR
Hostgator Coupon Code : LUCKY
Hostgator Coupon Code : HEART
Hostgator Coupon Code : TURKEY
Hostgator Coupon Code : FREEMONTH
Hostgator Coupon Code : GATORNEWS
Hostgator Coupon Code : B2EVO
Hostgator Coupon Code : FREETRIAL
Hostgator Coupon Code : MUSICA
Hostgator Coupon Code : SITEPOINT
Hostgator Coupon Code : WHREVIEWS
Hostgator Coupon Code : CHEAPHOSTING
Hostgator Coupon Code : ALAMO
Hostgator Coupon Code : SLICKDEALS