Author Archive

Esquinas redondeadas y degradados con CSS3

Posted on June 13, 2010 by Damian3 Comments

Hola a todos! Últimamente empieza a sonar más fuerte HTML5 y CSS3 , a medida que los navegadores se hacen más compatibles con estas nuevas tecnologías, así que hoy pensé en traerles un par de “trucos” que pueden realizar con CSS3 y que hasta ahora solo era posible con Javascript o imágenes.

Esquinas redondeadas

Hace un tiempito largo explique como redondear las esquinas de un DIV con el Plugin de JQuery JQuery.corners.
Hoy les explico lo mismo tan solo usando CSS3.

<div class="rounded"> Este es un ejemplo para http://blog.timersys.com</div>

Dado un div cualquiera aplicamos la propiedad border-radius

.rounded{
border-radius:7px;
-moz-border-radius:7px; //Firefox
-webkit-border-radius:7px; //Safari y navegadores que usen WebKit
}

Degradados y sombras con CSS3

Utilizando el ejemplo anterior vamos a aplicarle sombras al DIV y luego un degradado. Aunque en mi ejemplo utilizo DIVS cabe decir que se puede aplicar a otros objetos como botones y crear efectos muy buenos. Pueden ver un ejemplo de botones con degradado y sombras aquí.

Aplicando sombras al DIV y letras

.rounded{
border-radius:7px;
-moz-border-radius:7px; //Firefox
-webkit-border-radius:7px; //Safari y navegadores que usen WebKit

text-shadow: #fff 0px 1px 1px;
box-shadow: 1px 1px 2px rgba(0,0,0,.5);
-webkit-box-shadow: 1px 1px 2px rgba(0,0,0,.5);//Safari y navegadores que usen WebKit
-moz-box-shadow: 1px 1px 2px rgba(0,0,0,.5);//Firefox
}

Y por último le aplicamos un degradado

.rounded{
border-radius:7px;
-moz-border-radius:7px; //Firefox
-webkit-border-radius:7px; //Safari y navegadores que usen WebKit

text-shadow: #fff 0px 1px 1px;
box-shadow: 1px 1px 2px rgba(0,0,0,.5);
-webkit-box-shadow: 1px 1px 2px rgba(0,0,0,.5);//Safari y navegadores que usen WebKit
-moz-box-shadow: 1px 1px 2px rgba(0,0,0,.5);//Firefox

background: -webkit-gradient(linear, left top, left bottom, from(#D7E9F3), to(#ffffff));
background: -moz-linear-gradient(top,  #D7E9F3,  #ffffff);
filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#D7E9F3', endColorstr='#ffffff');
}

Listo !! con estas simples lineas habremos creado unos lindos efectos. Tengan en cuenta que van a necesitar las últimas actualizaciones de sus navegadores para que esto funcione correctamente.

Ver Ejemplo online
Descargar código del ejemplo

Tags: , ,

Filed Under: Tutoriales

Que necesitan ?

Posted on May 28, 2010 by Damian2 Comments

Hola a todos!! En este post no voy a explicar ningun plugin , ni hablar de JQuery , ni juegos , ni nada. Tan solo les quiero preguntar a ustedes, mis lectores ¿Que necesitan?

Si hace tiempo que buscan algun tutorial o tienen visto alguno que no deja de todo claro las cosas. Encontraron un plugin raro de JQuery y no le sacan la vuelta a como usarlo. No entienden bien algun tema de PHP o Mysql. Hoy están de suerte, dejen en los comentarios que necesitan y si puedo los iré ayudando.

Eso es todo , un saludo!!!

Tags: , , ,

Filed Under: Recursos

Como crear un script para GreaseMonkey con JQuery

Posted on May 24, 2010 by DamianNo Comments

En mi post anterior prometí que iba a explicar un poco de que trata GreaseMonkey y como lo prometido es deuda aca estamos.

Como bien dice la wikipedia Greasemonkey es una extensión para el navegador Mozilla Firefox e Iceweasel que permite, por medio de pequeñas porciones de código creadas por usuarios, modificar el comportamiento de páginas web específicas. Con esta extensión es posible mejorar la experiencia de lectura de un sitio web, hacerlo más usable, añadir nuevas funciones a las páginas web, corregir errores, mejorar servicios de búsquedas y muchas otras cosas más.

Estas pequeñas o no tan pequeñas porciones de código estan creadas por diversos usuarios de internet en lenguaje javascript y se les llama user scripts. Los nombres de dichos script tienen el formato xxxxxx.user.js , donde xxxxxx es el nombre que querramos ponerle.

Ahora veamos como es un user script por dentro empezando por la cabezera y sus @

// ==UserScript==
// @name          eMessages Timersys  
// @namespace  http://blog.timersys.com
// @description   eMessages tool to display messages in eRepublik
// @require        http://direccionweb.com/jquery.js  
// @include        http://ww*.erepublik.com/*
// ==/UserScript==
  • @name :nombre del programa
  • @namespace :web del autor o otra dirección de interes
  • @description :descripción del programa
  • @include : Página web en la cual nuestro script funcionará
  • @require : A diferencia del resto esta no es obligataria y tan solo la debemos usar cuando querramos cargar uno o más archivos externos. En este caso lo voy a usar para cargar JQuery

A partir de la cabezera todo lo que sigue es código Javascript. En nuestro caso podemos usar JQueryya que hemos incluido el archivo en la cabezera metadata.

Además Greasemonkey dispone de su propia API. Con la cual por ejemplo podemos hacer llamada AJAX de forma similar a como lo hacemos con JQuery.

jQuery(document).ready(function(){
                GM_xmlhttpRequest({
    method: 'GET',
      url: 'http://blog.timersys.com/erepublik/ajax_progreso.php?usuario=12',

    onload:function(response){
              $('.column:first').prepend( response.responseText);
       
    }  
    });

Con esta explicación se pueden dar un pequeña idea de como funciona GreaseMonkey. La mayor base de datos de user scripts está en userscripts.org
.
En taringa hay 2 buenos tutoriales para los que quieran empezar: Parte I + Parte II
Documentación de GreaseMonkey (en ingles)

Tags: ,

Filed Under: Tutoriales

eMessages Timersys para eRepublik

Posted on May 24, 2010 by Damian1 Comment

El otro día les hablé de eRepublik y de como habia puesto en marcha un sistema de lotería despues de jugar durante un tiempo.

Hoy vengo con un sistema de mensajes  creado con para Greasemonkey que es perfecto para que los partidos políticos, organizaciones militares, etc se puedan comunicar facilmente y de forma directa con sus miembros. Su nombre es eMessages Timersys y lo pueden descargar en la famosa web userscripts.org

Su funcionamiento es bastante simple. Primero hay que registrarse en http://blog.timersys.com/erepublik/ tan solo eligiendo un usuario , password , title (título , en la foto eMessages Timersys) y un avatar (en la foto el logo de elottery).

Una vez registrado se va a generar el script personalizado que tendrás que compartir con todos los usuarios que quieras que te lean.

Y con estos simples pasos ya tendrás tu sistema de mensajes para comunicarte de forma simple con la gente que quieras.

Una vez más les comento para los que no conozcan este juego prueben a darle una oportunidad. Aunque al principio es un poco lento y aburrido con el tiempo crecen las posibilidades.

En el próximo post les voy a hablar un poco de greasemonkey, de como crear un script y trabajar con JQuery. Y si les gusto el script, donen algunos GOLD :D

Un saludo!!

Tags: ,

Filed Under: Juegos

Como usar AJAX Auto Suggest V2.0

Posted on May 16, 2010 by Damian11 Comments

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:

<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:

<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:

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:

<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:

<?
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:

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


Formato JSON:

{ 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:

<?
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!

Tags: ,

Filed Under: Recursos, Tutoriales

Millions eLottery para eRepublik

Posted on May 11, 2010 by Damian1 Comment

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 :D

Saludoss

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

Tags: ,

Filed Under: Juegos

« Older Entries   Newer Entries »