Enviar mails con PHPMailer

¿Quieres enviar un mail desde una página de php? Ya sea al usuario, al administrador… la idea es que tu web sea capaz de enviar correos a una dirección de e-mail. Aunque existe la función mail() en php, desde hace tiempo la opción más utilizada es la clase PHPMailer que puedes descargar desde aquí.

Una vez descargado la cuestión es ¿cómo hago para enviar un correo? Bueno, todo es cuestión de configurar un script tal que así:

/*Lo primero es incluir la clase en vuestro php*/
include("metedLaRutaDondePusisteisLaCarpeta/class.phpmailer.php");

/*Obviamente, generáis el mensaje*/
$mensaje="Blablablablabla********"; //puede incluir html, podéis cogerlo de un form...

/*Ahora toca crear una variable de la clase phpmailer*/
$NewMail=new PHPMailer();

/*Y luego añadís todos los parámetros que esta necesita para el envío*/
$NewMail->Host = "localhost"; //El host donde tengáis alojado el correo
$NewMail->From = "correo@del.remitente"; //El correo del remitente
$NewMail->FromName = "Nombre remitente"; //Nombre del remitente
$NewMail->Subject = "asunto"; //El asunto del correo
$NewMail->AddAddress("emailalqueseenvía@asdsd.com","Nombre");//La dirección del receptor del mail
$NewMail->Body = $mensaje; //El mensaje
$NewMail->AltBody = "Relleno Relleno; //relleno

/*Y finalmente llamáis al método de envío*/
$NewMail->Send();

Hay más opciones de configuración, pero esto es lo básico. Entre otras cosas podéis configurar el protocolo de envío (POP, SMTP…), etc… pero con esto pelao debería ir funcionando. Si no, buscáis la documentación y ya profundizáis.

Blue Cheer – Vincebus Eruptum

Seguimos con pioneros del heavy, del stoner y del rock pesado en general, y vamos con unos de los más veteranos: Blue Cheer. Porque se puede ser ‘pre’, se puede ser ‘proto’… y luego se puede ser Blue Cheer. Por sus pintas podrías pensar que eran sólo otros hippies de San Francisco hasta atrás de ácido y mariguana, pero sin proponérselo iban a dar un salto cualitativo y, en términos de distorsión, cuantitativo a la evolución del rock and roll.

Blue Cheer - Vincebus Eruptum

Porque Blue Cheer fueron los más ruidosos. Antes de que Black Sabbath llegasen con su manto de oscuridad, antes de la suciedad del sonido Detroit de Stooges aparecieron en la costa oeste Blue Cheer. Por aquel entonces sólo MC5 podían competir con ellos en distorsión, si bien todavía no habían lanzado su debut Kick out The Jams. Porque el primer disco de Blue Cheer se grabó en 1967 y vio la luz en enero de 1968. Eran los hijos bastardos y embarrados de Jimi Hendrix, eran la evolución de Cream hacia los infiernos de la música.

Blue Cheer original line up
Si hasta tenían cara de buenos

Fueron 6 cortes los que compusieron el disco, la mitad de ellos versiones. Abren con su gran hit (llegó al número 14 del Billboard), una cover de Summertime Blues de Eddie Cochram cargada de distorsión tanto en el bajo como en la guitarra, y con una batería pesadísima, cargando el ritmo sobre el bombo y los timbales. Un trío que hace más ruído que una orquesta sinfónica, pero antes que ZZ Top, mucho antes que Motorhead. Siguen con otra versión, Rock me Baby de BB King, blues pesado, psicodélico, arreglos hendrixianos a la guitarra, solos de bajo cargados de distorsión al estilo de The Who. Doctor Please nos trae la primera de las composiciones propias, a cargo del líder, vocalista y bajista Dickie Peterson, que también firma Out of Focus. Una versión del clásico bluesero Parchman Farm rebautizada como Parchment Farm (que también hacían otras bandas como Cactus o John Mayall and the Bluesbreakers) dará paso a la final Second Time Around, otra composición de Peterson.

Dickie Peterson
Peterson, activo hasta que la enfermedad se lo llevó

Todo el mundo ve claramente las raíces del heavy metal, el doom metal, el grunge o el stoner en Black Sabbath, y razones no faltan para ello. Pero no conviene olvidar a Blue Cheer, una banda que se anticiparon a su época en términos de agresividad, pesadez y distorsión. La evolución posterior del grupo sería hacia sonidos más blues rock standar, tipo Cactus – Led Zeppelin – Steppenwolf, y se mantendrían en activo hasta 2009, cuando un cáncer de próstata se llevo a Peterson en su Alemania adoptiva (el grupo se había trasladado allí en los 80 y desde aquella habían vivido más en Europa que en América). Su último disco What doesn’t kill you… data de 2007 y se trata de un magnífico trabajo de blues rock (del que puede que algún día hable aquí). Curiosamente ese último trabajo fue elegido por la revista sobre mariguana High Times como «mejor disco del año para escuchar fumando». Como no soy fumador no puedo opinar, pero si alguno quiere comentar si realmente lo cree puede hacerlo en los comments.

NBA: Rookies que decepcionan y otros que sorprenden.

Bueno, el 25% de la temporada ya voló y me apetecía hablar de algunos de los debutantes de esta temporada. Porque como todos los años hay sorpresas para bien y para mal entre los novatos de la liga.

Para mal, desde luego Austin Rivers. Mi apuesta personal por el hijo de Doc de momento va camino de «big cagada»: A pesar de unos nada desdeñables 27 minutos por partido sus 6.7 puntos y 2.8 asistencias son bastante decepcionantes, y más cuando miramos sus porcentajes de tiro paupérrimos. Gracias a las lesiones está teniendo una enorme oportunidad que se le escurre entre los dedos. Por otra parte su compañero, el número 1 Anthony Davis, tampoco está teniendo suerte, aunque en su caso no son malos números sino lesiones que le mantienen alejado de la cancha demasiados partidos.

Austin Rivers
Austin Rivers no acaba de convencer

Otro de quien se esperaba un gran impacto era del lituano de los Raptors Jonas Valanciunas. Comenzó rondando los 30 minutos y ya anda su media por 23, con unos 8.2 puntos, 5.5 rebotes y 1.2 tapones que precisamente no son unos numerazos, pero sobre todo demostrando una terrible incapacidad para parar a los pivots rivales. Y otro pivot blanco que no acaba de coger la forma es Meyes Leonard en Portland, el que se suponía que iba a ser el gran cinco de este draft y que anda por los 5 puntos y 3.5 rebotes en 18 minutos. En cuanto a la elección de Terence Ross por parte de Toronto… pues 15 minutejos para marcarse unos 5 puntos, menos mal que necesitaban un escolta.

Jonas Valanciunas
La sombra de Sabonis es… alargada

Ojo, no todo son malas noticias: dos viejos conocidos del viejo continente están sorprendiendo para bien. Por un lado el explosivo Alexey Shved, la perla rusa, con 10.6 puntos y 3.6 asistencias parece encontrar un hueco en los T-Wolves que siguen esperando el regreso de Ricky Rubio. Por otro lado el ex madridista Kyle Singler se ha hecho un hueco en los flojos Pistons con sus 9.3 puntos y 3.4 rebotes en 27 minutos, con unos porcentajes de tiro excelentes. Pero si alguien está dando la campanada ese es Damian Lillard, convertido ya en el base titular de estos Blazers en reconstrucción, promediando 18.4 puntos y 6.4 asistencias y atreviéndose en más de un partido a cargar con la responsabilidad ofensiva en los últimos minutos. Aunque irregular y a rachas, tampoco hay que despreciar la aportación que ha tenido Michael Kidd Gilchrist en el sorprendente inicio de los Bobcats. Tyler Zeller con 7.1 puntos y 5.5 rebotes se hace un hueco como suplente de Varejao en Cleveland mientras que Andre Drummond aunque en ataque no acaba de ser decisivo hace un buen trabajo defensivo desde el banquillo en Portland. Y aunque sus números no sean muy buenos, creo que Pablo Prigioni podría entrar en el grupo de los buenos. No está jugando mucho ni anotando mucho, pero dada su avanzada edad y la función que le piden en su equipo está haciendo un inicio bastante digno. Puede estar contento el argentino, pues está demostrando que de haberse ido más joven podría haber tenido una carrera en la NBA.

Alexey Shved
Alexey Shved, el base que vino del frío

Luego hay un tercer grupo en el que metería a Bradley Beal y a Dion Waiters. Están teniendo balones, están teniendo minutos y están anotando más o menos bien, en todo eso estoy de acuerdo. Pero con unos porcentajes bajísimos en unos equipos muy flojos. Puede engañar su aportación, porque en un equipo más sólido no tendrían tanto balón con su 36% en tiro.

¿El novato del año? De momento es el que tiene más papeletas

Y esto es lo que está dando esta generación de novatos 2012-2013… y sí, me encantaría ver a Prigioni con 35 años en el partido de novatos… pero no creo que le lleven.

JPT Scare Band – Sleeping Sickness (1973-1976)

La historia de JPT Scare Band es curiosa. No sacaron su primer disco hasta 1994 a pesar de haberse fundado a principios de los años 70. Puede que fuesen demasiado raros e innovadores incluso para la época más rara e innovadora de la historia del rock and roll.

JPT Scare Band - Sleeping Sickness
JPT Scare Band – Sleeping Sickness

El nombre del grupo procede las iniciales de sus miembros: Jeff Lintrell (batería), Paul Grigsby (bajo) y Tony Swope (guitarra), y lo de Scare Band viene por lo tenso y tenebroso de sus composiciones. La influencia de las atrevidas y psicodélicas guitarras de Jimi Hendrix junto al blues pesado y distorsionado del disco debut de Blue Cheer, más una buena dosis de jazz y ácido, inspiraron las mentes de este trío de Kansas para componer estos temas durante los setenta. Porque aunque este disco no vería la luz hasta el año 2000 de la mano de Monster Records, todos los temas fueron grabados por la banda en su local de ensayo en el periodo 1973-1976.

Puede intuirse en esta colección de siete temas un alto componente de improvisación, suponiendo que las sesiones de grabación fueron más bien jam sessions donde la banda daba rienda suelta a su creatividad, planteando desarrollos instrumentales largos donde las voces juegan un papel apenas secundario.

Contraportada

Desde la inicial Sleeping Sickness, un cuarto de hora de paranoia hendrixiana cargada de fuzz intercalado con partes limpias. Extravagancia, experimentación, imaginación… Slow Sick Suffle no baja el listón, nos lleva de paseo por el infierno, pesadillas venéreas que provocan vigilias ácidas, pura locura. King Rat nos hace de nuevo a volar con 13 minutos de guitarrazos psicodélicos. It’s too late o I’ve been waiting nos transporta a pasajes más blueseros, más Cactus o Led Zeppelin, mientras que Acid Acetate Excursion o Time To Cry se mueven por registros de absoluta psicodelia. Por cierto, en esta última la línea de bajo es impresionante.

Siete temas que conforman más de una hora de grabación dada su larga duración, conformando un enorme discazo que por suerte no se perdió para siempre tras años guardando las grabaciones en un sótano. Curiosamente la banda sigue activa y desde su primer lanzamiento en los años 90 han publicado discos con bastante asiduidad.

JPT Scare Bande

Pioneros del heavy metal y el stoner, JPT Scare Band no recibieron apenas reconocimiento durante sus primeros años a pesar de su estilo musical innovador y arriesgado, si bien han alcanzado finalmente en status de banda de culto pionera por parte de la crítica y de publicaciones especializadas como Classic Rock Magazine o This Is Rock.

Procesar un formulario con PHPFox (operaciones CRUD)

En los últimos tiempos he estado trabajando con el CMS PHPFox para creación de redes sociales. He de decir que la documentación sobre el mismo es, en el mejor de los casos ambigua y en el peor insuficiente, teniendo que recurrir muchas veces al «voy a ver cómo está hecho aquí, y si se parece lo copio». Por cierto, si no sabes inglés date por jodido que la documentación está toda en la lengua de los inmortales bardos Poe, Shakespeare y Lemmy.

Podría empezar por lo básico, pero está más o menos bien explicado en su documentación (a la que sólo podrás acceder si tienes una cuenta de usuario… de pago, of course), donde te explican más o menos cómo crear tu primer módulo. Por desgracia, tras explicar lo más básico (lo más de lo más, porque esto no está explicado…) se quedan ahí, y no profundizan para acercarse al tema de la persistencia de datos ni a las operaciones CRUD (Create, Read, Update and Delete).

Para el acceso a la base de datos necesitarás al menos tres archivos, ya que PHPFox trabaja sobre la arquitectura MVC: un template (será la vista), un controller (controlador) y un service (el modelo).

Si habéis leído la documentación básica de phpfox ya sabréis en qué carpeta tenéis que meter cada archivo y cómo nombrarlo. Ahora os adjunto un ejemplo de como sería el código del template, seguido de su explicación:

<form method="post" action="{url link='phpfoxexperiment/form'}">
  <input type="number" name="val[orden]" id="orden" placeholder="orden"/>
  <br/>
  <input type="text" name="val[texto]" id="texto" placeholder="texto"/>
  <br/>
  <input type="submit" value="Add" class="button" name="val[add]" /> 
</form>

Por partes; en el action hemos usado esa variable porque así generará directamente un link a nuestra dirección seguido de ese directorio. En cuanto al nombre de los campos como «val[loquesea]» tiene también una explicación: se considera buena práctica no usar en PHPFox las variables de entorno $_GET y $_POST para recoger los datos de los formularios, en lugar de eso utilizamos el método getArray de la clase request, como verás en el ejemplo e abajo del php.

<?php 

class Phpfoxexperiment_Component_Block_Form extends Phpfox_Component 
{     
    public function process() 
    {         	
	if (($aVal = $this->request()->getArray('val'))) // getArray() nos permite recoger indistintamente valores $_GET y $_POST 
	{  
		  		 
		if(isset($aVal['add']) && !empty($aVal['add'])) // miramos si se ha pulsado el botón enviar 
		{  
		    if(isset($aVal['orden']) && !preg_match("/^[[:digit:]]+$/", $aVal['orden'])) //esto es una validación de los datos por expresión regular
		    {
			$this->url()->send('phpfoxexperiment.basic', null, 'Error'); //en caso de que los datos no sean correctos avisa a una página de error
		    }
		    else{
			if (Phpfox::getService('phpfoxexperiment')->add($aVal)) // llamamos al servicio para guardar los datos
			{ 				 
			    $this->url()->send('phpfoxexperiment.basic', null, 'Added with success');	//en caso de éxito lo comunicamos			 
			}else{
     			     $this->url()->send('phpfoxexperiment.basic', null, 'Error'); //en caso de error también
			}
		    }
		  }
		}         		 
	} 
}
?>

Como ves en el ejemplo se invoca al método add del servicio phpfoxexperiment. Ese método es el que hará la inserción en la base de datos. No se trata de un método del sistema, sino de uno creado por mi dentro del servicio. Aquí el código del mismo

<?php 
  
class Phpfoxexperiment_Service_Phpfoxexperiment extends Phpfox_Service  
{ 
    public function getData($iUser)
	
    { 
        return $this->database()->select('e.aescrypt') 
            ->from(Phpfox::getT('experiment'), 'e')
	    ->where('e.orden < 60 and user = '.$iUser)             
            ->execute('getRows'); 
    }
	public function add($aVal){ 
     
        $this->database()->insert( 
          Phpfox::getT('experiment'), 
          array(
            'user'=>Phpfox::getUserId(),
            'orden'=>$aVal['orden'], 
            'aescrypt'=>$aVal['texto'] 			
          ) 
        ); 
	return true;

    } 
} 
  
?>

En cambos casos accedo a la base de datos (MySQL) a través de los métodos de la clase database() de phpfox, que teóricamente ya implementa seguridad contra inyección sql y otros posbiles ataques. El return del final servirá para confirmar que la transacción se ha realizado. En el primer ejemplo se recuperar unos datos (teniendo en cuenta el id del usuario) y en el siguiente se insertan.

En fin, una explicación muy básica, pero que os ayudará a ir empezando a desarrollar módulos para este CMS.

Captain Beyond – Captain Beyond

Rod Evans es conocido principalemnte por haber sido el primer cantante de Deep Purple, con los que grabó tres discos (y algún single de más o menos éxito como Hush) antes de que Ian Gillan ocupara su puesto en 1969.  Tras su salida de Purple intentó lanzar una carrera en solitario, publicando un single con Capitol Records que pasó sin pena ni gloria. La mayoría de la gente piensa que entre eso y su «reunión» de Deep Purple de 1980 («reunión» que consistió en él y cuatro mercenarios y que acabó con una demanda de los managers de los entonces separados Purple que hicieron que perdiera el derecho a cobrar royalties por sus grabaciones con el MKI de la banda) estuvo retirado de la música, pero nada más lejos de la realidad. Tras el fracaso de su primer (y último) single en solitario Evans decidió crear una nueva banda, y así nacieron en 1971 Captain Beyond.

Captain Beyond disco debut
Captain Beyond – 1972

No era Rod el único famoso veterano en esta formación, donde también militaban el ex batería de Johnny Winter, Bobby Caldwell, y los ex bajista y ex guitarrista de Iron Butterfly, Lee Dorman y Larry ‘Rhino’ Reindhart respectivamente. La banda no obtuvo demasiado éxito comercial con ninguno de sus tres discos, a pesar de lo cual podemos considerar este disco debut como una verdadera joya y uno de los precursores del heavy metal.

El disco muestra claramente tres vertientes en sus temas: una hard rock bluesero, otro prog y con ciertos toques de pop heredados de los Beatles y una más psicodélica con algunos toques de jazz. Piensa en el sonido de las antiguas bandas de los miembros (sobre todo los primeros Purple y Iron Butterfly) y en las que parecen sus mayores influencias: Cream, Vanilla Fudge y Jimi Hendrix.

El disco está concebido como una sola canción, sin existir separación entre los temas, que en algunos casos se entrelazan y en otros tienen una pequeña pieza instrumental como nexo de unión. En total 13 pistas, si bien su disfrute completo se logra con la escucha del álbum seguido y ordenado. Entre los temas podrás disfrutar de las partes más duras en la inicial Dancing Madly Backwards, con Mesmerization Eclipse o la oscura I can’t feel nothing (part I); mientras que la parte más psicodélica vendrá de la mano de Myopic Void, As The Moon Speaks To The Sea o Astral Lady. El lado más prog y artístico caerá de la mano de Raging River of Fear, Frozen Over y Thousand Days of Yesterdays. En todo caso, sería mejor hablar de fragmentos que de canciones, porque la «canción» es todo el álbum y algunos fragmentos por si solos además parecen no tener mucho sentido.

Captain Beyond

No son tan duros como Deep Purple, Uriah Heep o Black Sabbath ni tienen ese toque folkie de Jethro Tull o Led Zeppelin, y desde luego a nivel de ventas y repercusión mediática estaban a años luz de los cinco grupos citados, pero Captain Beyond son una banda que encandilará a aquellos fans de la saga Purple y del rock británico más duro de los 70. Al igual que otros contemporáneos suyos, lograron un trabajo que 40 años después sigue sonando fresco e interesante. Por desgracia tras el siguiente disco, en 1973, se separarían a causa de las bajas ventas. En 1976 volvieron (sin Rod Evans) para sacar un tercer disco y volver a deshacerse tras la gira; y en 1998 hubo un nuevo regreso con Reindhart, Caldwell y varios mercenarios que daría al traste en 2003. Reindhart no paró de intentar una reunión de la formación original durante años, hasta que el cáncer se lo llevó en enero de 2012. Evans en cambio siempre se negó a recuperar esta banda y volver a intentar lanzarse con grandes giras (cuentan las leyendas que entre su salida de Captain Beyond y su intento de Deep Purple ejerció de médico en los EEUU y que, posteriormente al fracaso y el juicio purpeliano, volvió a ejercer la medicina). Una pena, porque habría sido interesante verles interpretar una última vez esta gran obra, 35 minutos de inspiración repartidos en fragmentos muy variados.

Enviar datos por POST desde php mediante cURL

Habitualmente para mandar una petición HTTP con datos POST solemos utilizar un formulario desde HTML, y enviarlo ya sea de forma nativa o mediante AJAX/Javascript.

Pero la semana pasada me vi con una cuestión delicada en el curro. Tenía que enviar un archivo utilizando un API externa y, como medida de autenticación, tenía que generar una firma que consistía en un hash de los parámetros más una clave secreta. El «secretismo» de la clave me impedía generar dicha firma en el cliente. Aunque la metiera en un campo oculto o la encapsulara dentro del javascript siempre existe un riesgo porque tiene que llegar al equipo del cliente. Por lo que pensé «bueno, alguna forma habrá de hacer esto en el servidor». Y descubrí cURL, una herramienta libre que me solucionaría la papeleta.

El razonamiento para solucionar el problema fue el siguiente: envío los datos por POST de la forma habitual al servidor, a una clase PHP que los maneje. Desde ahí genero la firma con los datos del formulario más la clave secreta (que de esta forma nunca viaja hasta el cliente), los envío al API, recojo la respuesta y la manipulo. Todo fetén.

¿Y como lanzo la petición desde cURL? Aquí te rulo un ejemplo del código:

<?php
//Lo primerito, creamos una variable iniciando curl, pasándole la url
$ch = curl_init('http://loquesea.com/quepachacolega.php');

//especificamos el POST (tambien podemos hacer peticiones enviando datos por GET
curl_setopt ($ch, CURLOPT_POST, 1);

//le decimos qué paramáetros enviamos (pares nombre/valor, también acepta un array)
curl_setopt ($ch, CURLOPT_POSTFIELDS, "parametro1=valor1&parametro2=valor2");

//le decimos que queremos recoger una respuesta (si no esperas respuesta, ponlo a false)
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true)

//recogemos la respuesta
$respuesta = curl_exec ($ch);

//o el error, por si falla
$error = curl_error($ch);

//y finalmente cerramos curl
curl_close ($ch);
?>

Et voilà, petición enviada con datos por POST. Un truquito fácil que te puede ayudar a automatizar tareas o a añadir seguridad a tu página.

FancyBox: Una alternativa a lightbox y otra opción para ventanas modales.

Seguimos con el mundo de los plugins de jQuery, el productivo framework libre de javascript que, con pocas líneas, te permite mejorar la experiencia del usuario, poner la página bonita y quedar como un Master del Universo delante de tu jefe.

Previamente en este blog hablamos de cómo hacer ventanas modales de forma sencilla con jQueryUI y de cómo trabajar con el plugin Lightbox. ¿Y si te dijera que hay un plugin que incorpora ambas funcionalidades? Sí, un plugin que te permite crear ventanas modales, mostrar galerías de fotos flotando sobre la web original, cargar iFrames (con todo lo que ello te puede proporcionar: vídeos de youtube, metacafe, vimeo, juegos o funcionalidades en flash…). Yo lo he utilizado para una ventana modal y para un flash. Podéis ver varias demos en esta página y descargarlo desde esta.

Como supongo que estáis deseando una explicación, allá voy: Lo primero, tras descargar es copiar en vuestro servidor el archivo .js (para entornos de producción mejor la versión «pack», que está comprimida, para experimentar usad la versión normal con el código legible), las imágenes, el .css (ojo, importante, si las imágenes y el .css no van a estar guardadas en la misma carpeta revisad las url de las mismas en el css, porque este viene pensado para que estén así) e incluirlos en la cabecera de la página donde queréis cargarlas. Para su correcto funcionamiento requiere que incluyáis una versión de jQuery superior a la 1.6, así que echad un ojo que todavía hay mucha gente funcionando por ahí con versiones viejas.

Una vez incluída la librería veamos dos ejemplos. Si quisiéramos usarlo para ampliar una imágen tipo facebook (como haría el lightbox) el código sería tal que así:
HTML:

<a class="ejemplo" href="../image/foto1.jpg" title="EjemploImagen"><img src="../image/foto1thumb.jpg"  /></a>

Explicación rápida: creamos un link, le damos una clase (que en el javascript utilizaremos para acceder al mismo, también podría usarse un id, pero suponiendo un caso real lo habitual son clases porque suele trabajarse con varias imágenes) y hacemos que la referencia apunte a la imagen que queremos cargar. Luego, para mostrar en el menú de la página, cargamos una versión minimizada de la imagen.

<script type="text/javascript">  
  $(document).ready(function(){  
      $(".ejemplo").fancybox({ });  
  });  
</script>  

Y sólo con esa línea de javascript ya tienes el efecto logrado.

Ahora imaginemos que queremos abrir una ventana modal con un aviso (por ejemplo, unas condiciones de uso, que es lo que tuve que hacer yo). La cosa empezaría con un HTML tal que así:

<!-- Aquí el link a la ventana modal -->
<a class="ejemplo" href="#inline1" title="Lorem ipsum dolor sit amet">Inline</a>
<!-- Aquí lo que queremos que se muestre en la ventana modal -->
<div id="inline1" style="display: none;">
   <h3>Etiam quis mi eu elit</h3>
   <p>
   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Nulla et lorem eu nibh adipiscing ultricies nec at lacus. Cras laoreet ultricies sem, at blandit mi eleifend aliquam. Nunc enim ipsum, vehicula non pretium varius, cursus ac tortor. Vivamus fringilla congue laoreet. Quisque ultrices sodales orci, quis rhoncus justo auctor in. Phasellus dui eros, bibendum eu feugiat ornare, faucibus eu mi. Nunc aliquet tempus sem, id aliquam diam varius ac. Maecenas nisl nunc, molestie vitae eleifend vel, iaculis sed magna. Aenean tempus lacus vitae orci posuere porttitor eget non felis. Donec lectus elit, aliquam nec eleifend sit amet, vestibulum sed nunc.
   </p>
</div>

Y con un javascript tal que

$(document).ready(function(){			
	$(".ejemplo").fancybox({
		maxWidth	: 400,
		maxHeight	: 300,
		fitToView	: false,
		width		: '70%',
		height		: '70%',
		autoSize	: false,
		closeClick	: true,
		openEffect	: 'none',
		closeEffect	: 'none'
	});		
})

En este caso definimos varios efectos. Las opciones son múltiples y variadas, por lo que si quieres sacar el 100% del jugo de este plugin lo que te recomiendo es que le pegues un ojo a la documentación del proyecto en su página oficinal.

The Sword – Age or Winters

Ahora que el cuarto disco de The Sword está calentito y listo para ver la luz tal vez sea un buen momento para añadirles a esta lista de enormes discazos con el que fue su disco debut allá por 2006, y que yo descubrí hará cosa de un año por recomendación del guitarrista de Tungsteno (banda que, por otra parte, debéis intentar escuchar si no lo habéis hecho ya).

 

Age of Winters puede sonar a título de novela de George R.R. Martin (al cual seguro que han leído y ha influenciado algunas de sus letras, por otra parte) pero se trata de uno de los mejores discos de heavy metal de la pasada década. En todo caso el debut de estos tejanos, que saben ser a la vez frescos y retro, tiene mucho de fantasía épica y ciencia ficción en sus letras. Eso sí, nada que ver con Blind Guardian, Rhapsody o mierdas así, la cosa va más por el lado de Blue Öyster Cult o Hawkwind, que son bandas que ejercen un claro magisterio sobre esta banda estadounidense.

The Sword - Age of Winters

 

Ya desde la intro Celestial Crow queda claro lo que estos chavales nos van a ofrecer: un doom/stoner muy setentero cargado de toneladas de distorsión y ritmos pesados, rock y blues que se dan la mano con un primitivo metal para completar una serie de canciones que recorrerán las influencias literarias de Moorcock, Anderton, Lovecraft, Lem, Clarke o K. Dick. Ya la primera ondanada tras la intro, Barael’s Blade, nos deja patentes las influencias de esta banda, y es que esos arreglos de guitarra suenan como si hubieran sido sacados del mismísimo Vol 4 de Black Sabbath. Freya, tema conocido por haber salido en varios videojuegos de la época, ahonda todavía más en la influencia sabbathica, con un repetitivo riff que concienzudamente machaca tus oídos y te hace machacar tus cervicales. Winter’s Wolves por otra parte mezcla los riffs más pesados con algunas partes más veloces y metaleras, muy en el rollo de los primeros Trouble o The Obsessed. Con The Horned Goddess siguen los ritmos pesados con aroma a humo de mariguana, como si fueran unos Down sin esa pesada, predecible y prescindible vena hardcore que les sale a veces a los de Anselmo. Una guitarra limpia da entrada a uno de los puntos álgidos del disco, Iron Swan, que tras ese ambiente se lanza con el riff más afilado y el ritmo más vertiginoso del disco para intercalarlo con intervalos más lentos, como un bastardo maridaje de los Judas Priest de los 70 con los ambientes de los Pentagram, una lección de cómo sonar contemporáneo sin tener que ir pegándose puñetazos en el pecho con bambas, pantalones por debajo del culo y berreando como si se hubiera pillado un testículo con la puerta del microondas. Con 8 minutazos Lament for the Aurochs es el tema más largo del disco, donde se permiten jugar con constantes cambios enlazando distintas partes. La instrumental March of the Lor fue otro de los hits del disco, rendición clara a Sabbath/Pentagram, al magisterio de Iommi e incluso al trabajo de John Christ en los primeros trabajos de Danzig. El disco termina con otro tema de riffs desencajacuellos como Ebethron, otra rendición al metal más pesado para cerrar esta joya, discazo que empieza impresionante y no decae en ningún momento.

 The Sword Cuatro chavales de Austin a la conquista del mundo

Tras este disco llegaron otros dos: Gods of the Earth en 2008 y The Warp Riders en 2010. Ambos totalmente recomendables y que muestran una evolución hacia derroteros más rockeros y melódicos, manteniendo la temática fantástica-mitológica-scifi. Unos lo llaman metal alternativo, otros doom, otros stoner, otros heavy… fuera de etiquetas hay que hablar de un grupazo al que seguir en los próximos años.

Diferencia entre display:none y visibility:hidden en CSS

A la hora de ocultar elementos html desde el css tenemos dos posibilidades: las propiedades display  y visibility. Ambas nos permiten definirlas para que un elemento no se muestre en nuestra página. En caso de display definiéndola como display:none y en caso de visibility como visibility:hidden. Muchos son los inconscientes que los usan de manera indistinta, con fatídicas consecuencias para sus maquetaciones porque ambas propiedades tienen diferencias. Veamos cuales:

  • La propiedad visibility:hidden oculta un elemento de la vista del usuario, pero respetando el espacio que ocupaba. Imagina que tienes tres cuadrados y ocultas el del medio con esta propiedad, ¿ok? Lo que ocurriría es que el cuadrado desaparecería, dejando ver lo que haya de fondo, y los cuadrados 1 y 3 seguirían en la misma posición. Con visibility:hidden todas las cajas css siguen en su sitio.
  • La propiedad display:none no sólo oculta, sino que quita el elemento del flujo lógico de la maquetación. Imagina el mismo caso de los cuadrados, en este supuesto en cambio el tercer cuadrado se desplazaría hacia la izquieda, ocupando el espacio que antes ocupaba el 2. Es decir, cuando usas display:none todas las cajas se recolocan como si la caja oculta no existiera.

Por tanto, a la hora de usar una propiedad u otra ten en cuenta estos comportamientos por el bien de tu maquetación.