Blog de Promineo Studios http://promineostudios.com es Diseño y Desarrollo Web, Tecnologías Web, efectos visuales y mucho más Sustituir rutas relativas por rutas absolutas con PHP http://promineostudios.com/blog/articulo/sustituir-rutas-relativas-por-rutas-absolutas-con-php vie, 27 ago 2010 22:01:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/sustituir-rutas-relativas-por-rutas-absolutas-con-php Hace unos días portamos los feed de éste blog a feedburner para aprovecharnos de todas las ventajas que ofrece éste servicio, como seguimiento de suscriptores o la suscripciones por email.

En la antigua administración interna de los RSS la imágenes que componían los artículos tenían rutas relativas. En parte decidimos prescindir de rutas absolutas por, si en algún momento cambiabamos de dominio, evitar tener que editar cada uno de los artículos con las nuevas rutas. Pero con feedburner las rutas relativas no son válidas y hemos tenido que improvisar una función que dinámicamente cambie las rutas relativas por absolutas, y así que las imagenes se sigan mostrando en los feed vinculados a feedburner.

La función PHP para reemplazar las rutas relativas por rutas absolutas en imágenes y enlaces internos de determinado contenido y, por consiguiente, la manera de que feedburner muestre nuestras imágenes es la siguiente:

	/*
* Convierte cualquier url de las etiquetas <img> o <a> de relativas en absolutas
*/

public function urlAbsoluta($contenido, $url){
// reemplaza <img src=""/> y <a href=""/> con rutas absolutas
return preg_replace( "/<(a|img)(.*?)(href|src)=('|\")\/(.*?)('|\")/s", "<\\1\\2\\3=\"".$url."/\\5\"", $contenido);
}
]]>
RabbitVCS: Cliente gráfico SVN para Ubuntu http://promineostudios.com/blog/articulo/rabbitvcs-cliente-grafico-svn-para-ubuntu vie, 20 ago 2010 13:10:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/rabbitvcs-cliente-grafico-svn-para-ubuntu Cuando desarrollamos cualquier tipo de software debemos contar con un buen sistema de control de versiones. Subversion (SVN) es el sistema de facto para ésta tarea. En Promineo Studios usamos SVN desde nuestro inicio, sería una locura prescindir de un sistema de control de versiones si se requiere continuidad en el desarrollo.

Hasta hace un mes el control de versiones lo hacíamos con el plugin para SVN que incorpora el IDE Aptana. No nos ha dado problemas, pero requeríamos un cliente gráfico que se integrase directamente en el Sistema Operativo Ubuntu 10.04. RabbitVCS cumplía éste requisito.

Para los que conocen algo sobre clientes gráficos para SVN, RabbitVCS es para ubuntu lo que TortoiseSVN es para Windows. Se integra de maravilla con Gnome y su gestor de archivos Nautilus.

Para instalar RabbitVCS es tan sencillo como introducir los siguientes comandos en la terminal:

sudo add-apt-repository ppa:rabbitvcs/ppa

sudo apt-get update

sudo apt-get install rabbitvcs-core

sudo apt-get install rabbitvcs-nautilus rabbitvcs-thunar rabbitvcs-gedit rabbitvcs-cli

Fuente de la noticia: ubuntugeek.com |fetishcode

]]>
Tweet: Botón oficial de Twitter para twittear http://promineostudios.com/blog/articulo/tweet-boton-oficial-de-twitter-para-twittear mar, 17 ago 2010 12:31:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/tweet-boton-oficial-de-twitter-para-twittear Por fin en Twitter han decidido lanzar un botón para poder twittear las noticias o post de las páginas que lo incorporen. Ya no tendremos que usar aplicaciones de terceros como Tweetme o implementaciones propias para que los usuarios de nuestras páginas puedan compartir la información que les parezca destacable.

El botón Tweet acortará la dirección de la página que vamos a compartir, gracias al servicio t.co, e incluirá el título de la página referida.

En el blog de Promineo Studios hemos introducido éste botón para que los usuarios puedan twittear de manera más cómoda. Puedes ver el nuevo botón en la parte inferior de éste artículo.

Para el que lo quiera implementar en su web es copiar y pegar el código que proporciona Twitter en la página del botón tweet.

]]>
Acortar direcciones con PHP y TinyUrl http://promineostudios.com/blog/articulo/acortar-direcciones-con-php-y-tinyurl mar, 17 ago 2010 00:03:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/acortar-direcciones-con-php-y-tinyurl Si deseas acortar las direcciones de tu página web puedes usar ésta simple función que utiliza la API del servicio TinyUrl.

 

function tinyUrl($url){  
    return file_get_contents("http://tinyurl.com/api-create.php?url=".$url);  
}
 
//Imprime la url corta  
echo tinyUrl("http://www.promineostudios.com");  

Visto en Webintenta

]]>
Google Font. Usa cualquier fuente libre en tu web http://promineostudios.com/blog/articulo/google-font-usa-cualquier-fuente-libre-en-tu-web jue, 20 may 2010 13:53:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/google-font-usa-cualquier-fuente-libre-en-tu-web La diseñadores web han lidiado desde siempre con la lacra de no tener la suficiente libertad a la hora de elegir las tipografías de una página web. Se limitaban a optar por fuentes estándar, como arial, trebuchet, times... o a usar apaños con javascript o flash para incluir alguna tipografía que los sistemas no tenían por defecto.

Con CSS3 llegó @font-face, una propiedad muy útil para definir en una página web fuentes que el usuario no tenga instaladas en su sistema. Si bien CSS3, y por consiguiente @font-face, sólo está implementada en los navegadores más modernos (Safari 3+ y 4+, Firefox 3.5, e Internet Explorer 7+). Desde mi punto de vista no es una solución a corto plazo, pero sin duda se terminará implantando cuando la mayoría de usuarios cuenten con versiones actualizadas de sus navegadores.

Google al rescate

Ayer Google presentó su directorio de fuentes libres que podremos definir en cualquiera de nuestras web. La cantidad de fuentes aún es limitada, pero con total seguridad que ira creciendo con el tiempo. Qué tal si vemos su uso:

Comenzaré con la manera más limpia de utilizar Google Font. Abrimos nuestra hoja de estilos e introducimos un par de líneas para importar y definir la fuente "Reenie Beanie":

@import url('http://fonts.googleapis.com/css?family=Reenie+Beanie');
 
h1 {
font-family: 'Reenie Beanie', "Trebuchet MS", Tahoma, Arial;
}
 

La otra manera, que considero menos limpia y elegante, es introduciendo una línea en nuestro documento HTML y definir la fuente en nuestro CSS.

link href="http://fonts.googleapis.com/css?family=Reenie+Beanie" rel="stylesheet" type="text/css" /
h1 {
font-family: 'Reenie Beanie', "Trebuchet MS", Tahoma, Arial;
}

Para usar otra fuente debemos sustituir el valor del parámetro “family” de la url de importación, Reenie+Benie en éste ejemplo, por el de la fuente que vamos a usar y posteriormente definirla. Por supuesto puedes usar fuentes en cualquier otra etiqueta, clase o identificador.

Mi blog personal puede servir de ejemplo. He usado esta técnica para mejorar el formato de los texto. yonerocha.net

Actualización: He leído en unijimpe que podemos importar varias tipografías en una misma llamada de la API, separando el nombre de cada fuente con "|".

Ejemplo: http://fonts.googleapis.com/css?family=Lobster|Cantarell

]]>
PHPMailer. Enviar correos electrónicos con PHP http://promineostudios.com/blog/articulo/phpmailer-enviar-correos-electronicos-con-php jue, 13 may 2010 12:06:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/phpmailer-enviar-correos-electronicos-con-php Habitualmente, para el envío de correo con PHP se utiliza la función mail(), integrada en el propio lenguaje. Sí bien la función cumple con su cometido, son notorias sus limitaciones.

PHPMailer es una clase que cubre las carencias de mail() y facilita el uso de propiedades avanzadas en el envío de correos. Por ejemplo, permite ficheros adjuntos o utilizar un servidor SMTP con autenticación. Gracias a esta última característica podremos enviar correos desde nuestra cuenta Gmail y evitar la instalación de un servidor de correo.

El primer paso para usar PHPMailer es descargar la clase de sourceforge. Nos encontraremos con dos archivos que debemos instanciar en nuestro código, class.phpmailer.php con la clase y class.smtp.php, opcional para utilizar servidores SMTP.

Empezamos con un ejemplo simple usando Sendmail:

require 'class.phpmailer.php';
 
$mail = new PHPMailer();
 
$mail->IsSendmail();//usamos Sendmail, también podemos usar mail() con isMail()
 
$mail->FromName = 'Juan Palomo';
$mail->From = 'remitente@dominio.com';//email de remitente desde donde se envía el correo.
 
$mail->AddAddress('destinatario@dominio.com', 'Destinatario');//destinatario que va a recibir el correo
 
$mail->AddCC('copia@dominio.com', 'copia');//envía una copia del correo a la dirección especificada
 
$mail->Subject = 'Asunto de email';
 
$mail->AltBody = 'cuerpo del mensaje en texto plano';//cuerpo con texto plano
 
$mail->MsgHTML('Mensaje con HTML');//cuerpo con html
 
$mail->AddAttachment("archivo.zip");//adjuntos un archivo al mensaje
 
if(!$mail->Send()) {//finalmente enviamos el email
   echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió
} else {
   echo 'Correo enviado correctamente';
}
 

Enviar un correo usando Gmail y PHPMailer:

require 'class.phpmailer.php';
require 'class.smtp.php'; //incluimos la clase para envíos por SMTP
$mail = new PHPMailer();
 
 
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com"; //servidor smtp
$mail->Port = 465; //puerto smtp de gmail
$mail->Username = 'email@gmail.com';
$mail->Password = 'tucontraseña';
 
$mail->FromName = 'Juan Palomo';
$mail->From = 'remitente@dominio.com';//email de remitente desde donde se envía el correo.
 
$mail->AddAddress('destinatario@dominio.com', 'Destinatario');//destinatario que va a recibir el correo
 
$mail->AddCC('copia@dominio.com', 'copia');//envía una copia del correo a la dirección especificada
 
$mail->Subject = 'Asunto de email';
 
$mail->AltBody = 'cuerpo del mensaje en texto plano';//cuerpo con texto plano
 
$mail->MsgHTML('Mensaje con HTML');//cuerpo con html
 
$mail->AddAttachment("archivo.zip");//adjuntos un archivo al mensaje
 
if(!$mail->Send()) {//finalmente enviamos el email
   echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió
} else {
   echo 'Correo enviado correctamente';
}
 

 

]]>
Imprimir array - matriz PHP http://promineostudios.com/blog/articulo/imprimir-array-matriz-php vie, 29 ene 2010 11:18:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/imprimir-array-matriz-php Puedes imprimir los valores almacenados en un array con la función print_r(). Nos devolverá los valores de la matriz en una estructura legible.

$equipos = array ('Real Madrid', 'Tenerife', 'Barcelona', 'Valencia'); 
echo <pre>'.print_r ($equipos).'<pre>';

Salida:
Array
(
    [0] => Real Madrid
    [1] => Tenerife
    [2] => Barcelona
   [3] => Valencia

)

También puedes usar la función implode para imprimir los valores en orden de aparición de un array siguiendo un patrón de separación entre elementos, en este ejemplo la coma.

echo implode (",", $equipos);

Salida:

Real Madrid, Tenerife, Barcelona, Valencia

Aclaración: Implode() sólo funciona con matrices unidimensionales.

 

]]>
Cortar una cadena de caracteres sin partir la última palabra http://promineostudios.com/blog/articulo/cortar-una-cadena-de-caracteres-sin-partir-la-ultima-palabra mié, 21 oct 2009 22:50:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/cortar-una-cadena-de-caracteres-sin-partir-la-ultima-palabra En PHP tenemos multitud de funciones para tratar cadenas de caracteres. Una de ellas, substr, nos devuelve un fragmento o porción de la cadena que estamos manipulando. El problema viene cuando queremos que no se  corte la última palabra de la subcadena que obtenemos. Ninguna función de manipulación de cadenas es capaz de identificar una palabra y no cortarla, pero podemos utilizar una combinación de éstas funciones para obtener una subcadena sin cortar palabras por la mitad.

Con el código que describo a continuación podéis cortar una cadena, dado un número de caracteres, sin partir la última palabra de la subcadena resultante.

$texto = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
$cantidadCaracteres = 25;
 
//1.- Obtenemos un fragmento de la cadena desde el índice cero hasta la longitud dada por la variable$cantidadCaracteres
$subcadena = substr($texto,0,$cantidadCaracteres);
 
//2.- strrpos encuentra la posición de la ultima aparición de un caracter, en éste caso el último espacio en blanco de la cadena que obtenemos con substr
$indiceUltimoEspacio = strrpos($subcadena," ");
 
//3.- Con substr obtenemos una subcadena de $texto desde la posicion inicial hasta la posición del último espacio que nos interesa
echo substr($texto,0, $indiceUltimoEspacio);
//salida por pantalla-> Lorem ipsum dolor sit

Y ahora el mismo código  en una sola línea:

$texto = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
$cantidadCaracteres = 25;
echo substr($texto,0,strrpos(substr($texto,0,$cantidadCaracteres)," "));

Este aporte no es ni mucho menos mío, debemos darle las gracias a Javier Cerezo que dejo  un comentario en un artículo de la página programacionweb.net con este tip. 

]]>
Todas las versiones de Internet Explorer en un mismo PC http://promineostudios.com/blog/articulo/todas-las-versiones-de-internet-explorer-en-un-mismo-pc lun, 12 oct 2009 16:05:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/todas-las-versiones-de-internet-explorer-en-un-mismo-pc Un diseñador web, por desgracia, no le basta con que su código CSS y HTML sea válido. Gracias al mal hacer de Microsoft con su navegador Internet Explorer debe perder muchísimas horas parcheando su código para que éste se vea de igual manera en navegadores que si respetan los estándares web (Safari, Firefox, Chrome...) como en los chapuceros IE de Microsoft.

Evidentemente, debemos tener instaladas las versiones más utilizadas de IE para poder probar nuestros diseños web. El problema es que no puedes tener varias versiones instaladas en la misma máquina, no por defecto. La solución viene de la mano de un paquete de software en el que vamos a encontrar cada una de las versiones del dichoso navegador, Internet Explorer Collection.

Internet Explorer Collection contiene las siguientes versiones de IE:

  • Internet Explorer 1.0 (4.40.308)

  • Internet Explorer 1.5 (0.1.0.10)

  • Internet Explorer 2.01 (2.01.046)

  • Internet Explorer 3.0 (3.0.1152)

  • Internet Explorer 3.01 (3.01.2723)

  • Internet Explorer 3.03 (3.03.2925)

  • Internet Explorer 4.01 (4.72.3110.0)

  • Internet Explorer 5.01 (5.00.3314.2100)

  • Internet Explorer 5.5 (5.51.4807.2300)

  • Internet Explorer 6.0 (6.00.2800.1106)

  • Internet Explorer 6.0 (6.00.2900.2180)

  • Internet Explorer 7.0 (7.00.5730.13)

  • Internet Explorer 8.0 (8.00.6001.18702)

]]>
Adobe CS5 http://promineostudios.com/blog/articulo/adobe-cs5 mar, 29 sep 2009 13:06:00 GMT Isidro Quintana http://promineostudios.com/blog/articulo/adobe-cs5

ps_cs5_sSi  hay un paquete de software al que soy asiduo ese es sin duda el paquete creative suite de Adobe, recuerdo como cuando meses antes de salir la CS4 salían bulos y verdades sobres las novedades de esa versión. Para ahorrarnos todo eso Adobe lanza un blog con todas las novedades que van aconteciendo sobre la nueva suite CS5, adobe como siempre al pie del cañón con novedades siempre la mar de interesantes. Por cierto en Abril del 2010 ya podremos disfrutar de la nueva suite.

adobe-flash-cs5_620

 

]]>