Archive for the Tutoriales Category

Actualizar Twitter a traves de PHP y OAuth

Posted on August 13, 2010 by Damian1 Comment

Hasta hace poco Twitter permitía la actualización de status a través de un método sencillo mandando usuario , contraseña y mensaje de una sola vez a través de una sencilla función. Hoy en día esto ya no es así y el único modo de interactuar con la API de Twitter es usando OAuth

Tags: ,

Filed Under: Tutoriales

Como mejorar la velocidad de carga de tu página web

Posted on August 2, 2010 by DamianNo Comments

Hoy en día los buscadores están empezando a puntuar la velocidad de carga de las páginas webs para mostrar los diferentes resultados ( engrosando así sus algoritmos para mejorar la experiencia de los usuarios). Hay diversidad de formas de acelerar la carga de una página web pero podemos resumirlas en unas cuantas.

Tags:

Filed Under: Recursos, Tutoriales

Esquinas redondeadas y degradados con CSS3

Posted on June 13, 2010 by Damian1 Comment

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

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

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

Como hacer una web multilenguaje

Posted on December 31, 2009 by Damian2 Comments

Para detectar el idioma del navegador y hacer una web multilenguaje existen diversos métodos. Yo particularmente suelo usar el siguiente:

Primero creo el archivo lang-functions.php

<?php

    /*

    =============================================================================

     Funcion: detectar_idioma_navegador()

    -----------------------------------------------------------------------------

     Proposito: Esta funcion detecta el idioma por defecto seleccionado en el navegador del visitante.

     Si no se detecta un lenguaje valido, se asigna el selecionado por defecto.

     

    =============================================================================

    */


    function detectar_idioma_navegador() {

    global $conf;

   

    $languages = preg_replace('/(;q=\d+.\d+)/i', '', getenv('HTTP_ACCEPT_LANGUAGE'));

   

    $bol_language_detected = false;

   

    // Comprobamos si el navegador usa alguno de los idiomas que hemos predefinido.

    foreach ($conf['lang_enabled'] as $tmp_arr_language) {

    if (preg_match('/' . $tmp_arr_language . '/i', $languages)) {

    $tmp_str_language_detected = $tmp_arr_language;

    $bol_language_detected = true;

    break;

    }

    }

    // Si el navegador usa uno de los idiomas seleccionados, se devuelve el path del fichero de idioma

    // En caso contrario, se devuelve el path del idioma original

    if ($bol_language_detected) {

    return $tmp_str_language_detected;

    } else {

    return $conf['lang_default'];

    }

    }

Una vez creado el archivo lo incluyo de la siguiente manera:

include("languages/lang-functions.php");
       

        $conf['lang_default'] = 'es'; // idioma por defecto

        $conf['lang_enabled'] = array('es','en');

        $conf['lang'] = detectar_idioma_navegador();

        if(isset($_GET['lang'])) $conf['lang']=$_GET['lang'];// Podemos crear un link como por ej una bandera para permitir cambiar el idioma al usario

        require_once("languages/".$conf['lang'].".php");

Por último nos queda crear los archivos de idiomas de la siguiente forma:

es.php

<? // Spanish language file
   setlocale(LC_ALL,'es_ES');
define("_MENSAJE", "HOLA SOY UN MENSAJE EN ESPAÑOL");
?>

en.php

<? // English language file
   setlocale(LC_ALL,'es_ES');
define("_MENSAJE", "Hi im a English message");
?>

En la web escribiriamos echo (_MENSAJE); y según el idioma del navegador aparecerá de una forma u otra.

Espero que haya servido de ayuda

Tags:

Filed Under: Tutoriales

« Older Entries