Symphony: CMS open source basado en XSLT

Symphony es un CMS open source que usa PHP, MySQL como motor de BBDD y XSLT como sistema de templating, de esta forma, si ya dispones de conocimientos de XSLT no te costará nada empezar con este CMS. Sus requerimentos son PHP 5.2+, MySQL 4.1+, módulo LibXML con la extension XSLT activada.
Por : David           Comentarios desactivados

SpriteMe, herramienta para crear CSS Sprite fácilmente

CSS, Recursos

David | 7/01/2010

Hoy he descubierto Sprite me, una herramienta muy práctica que facilita enormemente la tarea de optimización de páginas web mediante la técnica CSS sprite. La herramienta detecta todas las imágenes de fondo asignadas con CSS mediante la propiedad background-image, y las muestra en una caja. Utiliza firebug lite para inspeccionar las imágenes y proporcionar más información al desarrollador.

Una vez seleccionadas las imágenes que queremos agrupar en una, solo tenemos que pulsar sobre “Make Sprite”, lo que generará una nueva imagen que compone a todas las imagenes anteriores. Después pulsando sobre “export CSS” podremos obtener el código CSS necesario para implementar en el sitio que estamos optimizando.

Spriteme puede ejecutarse en cualquier sitio web como un bookmarklet, añadiendo la URL de la aplicación a favoritos y pinchando sobre el marcador en el sitio que quieres optimizar.

Te recomiendo que sigas el pequeño tutorial que hay en el sitio web de SpriteMe para aprender el funcionamiento de la aplicación.

Haz click aquí para ejecutar Sprite Me, y guarda el enlace en favoritos si quieres ejecutarlo en cualquier sitio web.


5 trucos para usar jQuery con Wordpress

Javascript, Wordpress

David | 4/01/2010

Cuando creas un theme o plugin para Wordpress, muy frecuentemente se requiere usar jQuery (o cualquier otro framework javascript). Wordpress tiene un API para manejar los ficheros que se incluyen, tanto scripts como estilos.

Estos son unos cuantos trucos muy útiles a la hora de usar javascript con Wordpress.

Usa wp_enqueue_script()

La forma en que se incluye un script javascript en HTML es con el tag script. Incluir jQuery directamente sobre el theme con el tag script puede causar muchos conflictos. La manera correcta de hacerlo es:


function mi_inicio() {
	if (!is_admin()) {
		wp_enqueue_script('jquery');
	}
}
add_action('init', 'mi_inicio');

De esta forma se incluye la última versión de jQuery. Con la instalación de Wordpress se incluye la última versión de jQuery en el directorio wp-includes/js/jquery, así como otros frameworks conocidos.
Este código debe ser añadido en el plugin que estés desarrollando, o en el fichero functions.php de tu theme. La función is_admin se ejecuta para evitar que se incluya jQuery en tus páginas de administración.
Puedes encontrar más información sobre la función wp_enqueue_script en Anieto2K.

Cargar jQuery en Wordpress desde el CDN de Google

La llamada a la función wp_enqueue_script(‘jquery’) cargará la última versión de jQuery, que se encuentra en el directorio wp-includes/js/jquery. Si deseas cargar jQuery desde el CDN de Google, deberás de usar el siguiente truco:


function mi_inicio() {
	if (!is_admin()) {
		// comment out the next two lines to load the local copy of jQuery
		wp_deregister_script('jquery');
		wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
		wp_enqueue_script('jquery');
	}
}
add_action('init', 'mi_inicio');

Hay varios motivos por los que cargar el framework javascript desde los servidores de Google.

También existen plugins que ya hacen este trabajo, como el plugin Use Google libraries.

Cargar  jQuery al final del theme

Por defecto, cuando se usa la función wp_enqueue_script, se añade el script en la sección head del documento HTML. Puede ser que te interese incluir el framework javascript al final, justo antes de que se acabe el body, para disminuir la velocidad con que carga la página. En este caso debes de usar el parámetro $in_footer de la función wp_register_script. Puedes ver el código modificado a continuación.


function mi_inicio() {
	if(!is_admin()) {
		wp_deregister_script('jquery');

		wp_register_script('jquery', '/wp-includes/js/jquery/jquery.js', false, '1.3.2', true);
                //Con este código se cargaría en el pie, pero usando el API de Google
		//wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2', true);

		wp_enqueue_script('jquery');
	}
}
add_action('init', 'mi_inicio');

En el último parámetro se pasa un true que indica que el script se cargue en el pie de página.

Añadir jQuery como una dependencia

Si tienes un script que has desarrollado (theme.js), y este a su vez hace uso de otros scripts u otros frameworks (jQuery), es buena idea cargarlos como dependencia del script que estás creando, de esta forma se asegura que siempre se cargarán antes al ser una dependencia.


function mi_inicio() {
	if (!is_admin()) {
		wp_deregister_script('jquery');
		wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2', true);
		wp_enqueue_script('jquery');

		// cargar el fichero js de mi theme: js/theme.js
		wp_enqueue_script('my_script', get_bloginfo('template_url') . '/js/theme.js', array('jquery'), '1.0', true);
	}
}
add_action('init', 'mi_inicio');

En el tercer parámetro pasamos un array con el conjunto de dependencias que queremos cargar para ese script, en este caso jQuery.

Usar jQuery adecuadamente

El framework jQuery incluido con Wordpress llama automáticamente a la función jQuery.noConflict(). Esto provoca que la forma habitual de ejecutar la función jQuery, es decir, la función dolar ( $ ), por ejemplo $(‘id’).show() , no funcionará. Por el contrario, habrá que llamar a a la misma función de la siguiente forma: jQuery(‘id’).show().
Si estás usando el CDN de Google para cargar Javascript, es recomendable hacer la llamada a noConflict de forma manual para evitar posibles conflictos en el futuro.
Si quieres seguir usando la función dolar, puedes usar el siguiente código a modo de espacio de nombres:


jQuery(function ($) {
	/* Puedes usar $ con seguridad para hacer referencia a jQuery */
});

Sabiendo estos trucos se tiene una comprensión muy buena (y necesaria) sobre como usar los ficheros Javascript en un theme de Wordpress, algo imprescindible a la hora de crear un theme sin hacer “chapucillas”.

Fuente: Eric Martin


Feliz año 2010 a todos!!

General

David | 1/01/2010

Line of fireworks over black background

Desde mi humilde bitacora os deseo un feliz 2010 a todos.


Joomla compra Automattic, la empresa desarrolladora de Wordpress

General, Joomla, Wordpress

David | 28/12/2009

Inocente!

inocente Este artículo es una inocentada con motivo del día de los inocentes. Ni OSM ha comprado Wordpress ni nada por el estilo, era todo una broma. Un saludo ha todos y feliz navidad!!

Open Source Matters acaba de anunciar la adquisición de Automattic, la empresa que desarrolal Wordpress.
Según el presidente de OSM, ambas llevaban bastante tiempo en conversaciones para llevar a cabo una fusión. La razón es que se estaban haciendo sombra el uno al otro, y siendo dos proyectos de software libre que usan la misma tecnología, la mejor decisión era unificar esfuerzos y crear un macroproyecto, con una macrocomunidad y de esta forma crear el CMS definitivo.

La última versión de Wordpress será la 3.0, mientas que la de Joomla será la 1.6. Después de esto nacerá Joompress, nombre en clave del proyecto mientras se decide el nombre definitivo.

Joompress se desarrollará con el API orientado a objetos de Joomla 1.6 e incorporará elementos de Wordpress como Gravatar, actualización automática del core y plugins, etc…

Pero la cosa no acaba aquí, Microsoft, que sigue muy de cerca los pasos de estos CMS de software libre, ha declarado, según palabras de Steve Ballmer, que semejante fusión es un atentado contra el libre mercado explicando a los periodistas que se trata de competencia desleal, al mismo tiempo que infringe las leyes antimonopolio y que recurrirá la fusión ante la Unión Europea y EEUU.

Fuente: Todowp


Presentación de Nooku Framework en JoomlaDay 2009 BCN

Joomla

David | 13/12/2009

Nooku logo

Entre el día 11 y 12 de Diciembre ha tenido lugar el JoomlaDay 2009 Spain, esta vez en Barcelona, al que por varios motivos no he podido asistir, aunque me hubiera gustado.
Una de las cosas más interesantes que he podido ver, desde mi casa, ha sido la presentación del framework Nooku, un CMF (Content Management Framework) para Joomla desarrollado por Johan Janssens, uno de los máximos responsables en el diseño del framework MVC de Joomla 1.5, cofundador de Joomla y Lead Developer .

johan El framework de Nooku (Koowa) se instala como un simple plugin en Joomla y a partir de ahí puedes empezar a usarlo. Está pensado como un añadido que permita disminuir drásticamente el número de líneas de código, con la mentalidad de “Rapid Development” como base, es decir, no reinventar la rueda y todo eso…
Aunque a decir verdad la característica que más me ha convencido es la de la seguridad.
Joomla es un CMS bastante criticado por su seguridad, a lo que los miembros de OpenSource Matters responden que el problema no es de Joomla, es de las extensiones de terceros. Esto es cierto, el problema es que cualquiera crea una extensión, y la cuelga, y luego la gente la instala sin saber exactamente cual es la procedencia de esta extensión.
El framework Nooku, pretende que se minimice el número de líneas escritas y por lo tanto, la posibilidad de cometer errores de programación, ya que Nooku haría todo el trabajo sucio por debajo. Se puede ver un ejemplo de su potencia a continuación.

Punto de entrada implementado con el framework de Joomla

// Require the base controller

require_once( JPATH_COMPONENT.DS.'controller.php' );

// Require specific controller if requested
if($controller = JRequest::getWord('controller')) {
  $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
  if (file_exists($path)) {
  require_once $path;
  } else {
  $controller = '';
 }
}

// Create the controller
$classname      = 'HellosController'.$controller;
$controller     = new $classname( );

// Perform the Request task
$controller->execute( JRequest::getVar( 'task' ) );

// Redirect if set by the controller
$controller->redirect();


Punto de entrada implementado con framework Nooku sobre Joomla

// Check if Nooku Framework (codename=Koowa) is active
if(!defined('KOOWA')) {
 JError::raiseWarning(0, JText::_("Koowa wasn't found. Please install the Koowa plugin and enable it."));
 return;
}
// Create the component dispatcher
KFactory::get('admin::com.hello.dispatcher', array('default_view' => 'greetings'))->dispatch();

Como se puede observar, la tarea de crear el controlador genérico, instanciarlo y ejecutar el método display con la vista por defecto queda relegada totalmente al framework Nooku, que tiene un dispatcher para tal efecto. Aunque con Joomla 1.6 esto precisamente también se ha mejorado. Puedes ver una comparación más detallada aquí.

Mi opinión es que es una muy buena opción para desarrollar en Joomla, aunque yo prefiero el método de toda la vida, pese a que se tenga que escribir algo más de código, ya que me gusta saber exactamente lo que estoy haciendo en cada momento y además la documentación no abunda demasiado.

Pinchar aquí para ver la presentación


Sigue el JoomlaDay 2009 BCN por Twitter

Entre hoy y mañana (11 y 12 de Diciembre) se celebra el JoomlaDay 2009 en Barcelona. Puedes enterarte de muchas cosas en tiempo real buscando el trend topic #JoomlaDay2009BCN . Usuarios como @55Thinking (Frank) lo están narrando todo en tiempo real…
Por : David           comentarios 1

Ya está aquí “Mootools Forge”, repositorio oficial de extensiones para Mootools

Javascript

David | 11/12/2009

Mootools Forge

Ya ha salido la forja de Mootools, el sitio oficial donde se centralizarán todos los plugins para Mootools, al igual que ya hacen otros frameworks como jQuery, su principal competidor y el framework Javascript más popular.

Mootools es un framework técnicamente espectacular, pero que no ha sabido llegar a la gente del mismo modo que jQuery. Uno de los problemas de que se venían quejando los usuarios era la dificultad para encontrar extensiones de Mootools con su respectiva documentación. Para esta faena, el único recurso hasta ahora era tirar de Google y empezar a buscar.

Los desarrolladores del framework, conscientes de este problema han creado la forja de Mootools, con la que se espera subsanarlo y disponer de un respositorio centralizado de plugins para Mootools.

Cada plugin aparecerá con un enlace a un ejemplo, un enlace de descarga y un enlace a la documentación, cosa que ayudará en gran medida a que la gente encuentre rápidamente lo que andaba buscando.

Esperemos que sirva para popularizar un poco más el framework, se hagan más y mejores plugins y todos salgamos beneficiados. Otro que saldrá beneficiado con esta medida será Joomla, que usa Mootools en el core, y muchas veces se le ha criticado no usar jQuery como framework principal, dada su popularidad.

Podeis encontrar más información en el post oficial del blog de Mootools.