Contenido

Internet Explorer 9 por el buen camino

24 jun

+ 32

Si hay una actualización de un navegador que espero con ansia es la de Internet Explorer 9. Opera, Chrome y Firefox son navegadores que nos tienen acostumbrados a las nuevas tecnologías y cada versión nos deleitan con alguna de ellas, pero Internet Explorer no nos sorprende con mejoras de este nivel desde hacer realmente mucho tiempo (pero muuuucho :D).

En esta nueva versión, no solo quieren hacer una lavado de imagen a su navegador, quieren pegar con el puño en la mesa de los navegadores web para decir, “Estamos aquí para quedarnos… y nos quedaremos haciendo las cosas bien.”. Ya tenemos que olvidarnos de Microsoft aquella empresa que demonizabamos por ser la dueña y señora de todo lo que estaba en contacto con un ordenador, ahora debemos aprender a perdonar y aceptar que forman parte de esta guerra y que mientras ellos se peleen, nosotros saldremos beneficiados con las mejoras y novedades que vayan incorporando.

Internet Explorer 6, ha hecho mucho daño a Internet, pero esta nueva versión viene cogiendo carrerilla para corregir los errores del pasado.

Leyendo estos primeros párrafos, habrás pensado que Microsoft me tiene en plantilla o me ha pagado una sustancial suma de dinero para que hable bien de su navegador, y aunque no puedo negar que no me importaría llenarme los bolsillos con dinero de Microsoft, esta vez lo digo por que realmente lo creo. Esta nueva versión promete y mucho.

Internet Explorer 9

Ya hemos hablado otras veces de IE9, y hemos ido viendo algunas de las nuevas funcionalidades que van a estar disponibles en él. Pero poco a poco van saliendo datos que muestran la mejoría y el buen camino que están siguiendo.

Javascript

Dean_PPB3_1
(Ver Imagen)

El rendimiento del render de Javascript ha sido optimizado en relación a la versión beta preview anterior, llegando a tiempos de respuesta (en tests) similares a los obtenidos por Safari5 y muy cerca del fabuloso V8 de Google Chrome y lo que es más soprendente, bastante inferiores a los obtenidos por la próxima versión de Firefox (la 3.7).

Además, la versión de javascript incluye las mejoras de la última revisión de ECMA-262.

Aceleración por hardware del elemento <canvas />

Dean_PPB3_3
(Ver Imagen)

En este ejemplo podemos ver como funciona la aceleración por hardware del elemento <canvas />. Algo que ya prometieron para la beta anterior y que por falta de testeo no llegaron a incluir.

Video, audio y WOFF

Aprovechando la aceleración por hardware se ha mejorado el elemento <video /> para reproducir mediante hardware los vídeos, lo que hace que estos vayan claramente más fluidos.Por otro lado y junto a Mozilla y Opera han estado trabajando sobre el Web Open Font Format (WOFF) sobre CSS3 para incluir este estandar de fuentes para nuestras páginas web.

Acid3

Dean_PPB3_9
(Ver Imagen)

Aunque el resultado no es el que muchos sibaritas de la web estan deseando ver, hay que destacar la mejoría frente al 68/100 del preview#2 (la versión anterior) que nos incita a pensar que la versión final puede sorprendernos con el mismo resultado que los demás navegadores.

Conclusión

Personalmente me gusta lo que estoy viendo sobre Internet Explorer 9, están haciendo las cosas bien. Y como dicen “Más vale tarde que nunca”. Esperemos que no se desvien del camino que están marcando. Me gusta.

WordPress 3.0: Exprimiendo los Custom Post Types

19 jun

+ 31

Una de las funcionalidades incluidas en WordPress 3.0 es la posibilidad de definir tipos de posts personalizados. Esto que parece que ha pasado desapercibido por la comunidad de desarrolladores es realmente interesante y ofrece una gran capacidad para extender cualquier WordPress fácilmente.

¿Que son los Custom Post Types?

Hasta la versión 2.9.x de WordPress disponíamos de unos pocos tipos de posts disponibles para identificar nuestros artículos. Estos tipos de posts, indicaban el estado del mismo (draft, revision,…) o el tipo de usado (attachment, page,…).

Ahora con la nueva versión de WordPress, la 3.0, la posibilidad de definir tipos de posts personalizados abre un abanico de posibilidades.

¿Como definir un nuevo Custom Post Type?

La API de WordPress está muy bien documentada en WordPress Codex y allí podemos encontrar como definir un Post Type fácilmente.

Todo pasa por la función register_post_type(), que se encarga de registrar un nuevo tipo con una serie de características personalizadas.

add_action( 'init', 'create_post_type' );
function create_post_type() {
  register_post_type( 'super',
    array(
      'labels' => array(
        'name' => __( 'Supers' ),
        'singular_name' => __( 'Super' )
      ),
      'public' => true,
    )
  );
}

Como vemos, debemos crear una función que se ejecutará en el action “init” de WordPress y que registrará el nuevo tipo. Disponemos de muchos parámetros que podemos usar para personalizar el nuevo tipo, pero los veremos más adelante.

post_type_wordpress_3
(Ver Imagen)

Introduciendo este código en, por ejemplo, el fichero functions.php de tu theme o en un plugin. Obtendremos un resultado similar al que vemos en la imagen. Se trata de un nuevo menú con el nuevo tipo registrado.

En el nuevo menú descubrimos que podemos mostrar un listado de artículos del nuevo tipo o crear uno nuevo, siempre asociado al post-type definido previamente.

Detalles de register_post_type()

Los parámetros que esta función reciba condicionarán el panel de administración de nuestro nuevo post_type.

Labels

  • name: El plural del nuevo tipo (películas).
  • singular_name: Singular del nuevo tipo (película)
  • add_new: Etiqueta de “Añadir nuevo”
  • add_new_item: Cabecera del panel “Añadir nuevo”
  • edit: Etiqueta de “Editar”
  • edit_item: Cabecera del panel “Editar”
  • new_item: Muestra en el menú favoritos
  • view: Se utiliza como texto en un enlace para ver el post.
  • view_item:Se muestra junto con el enlace permanente en la pantalla de edición posterior
  • search_items: Botón de texto para el cuadro de búsqueda en la pantalla de edición de mensajes
  • not_found: Texto para cuando no encuentre items
  • not_found_in_trash:Texto para cuando no encuentre items en la papelera.
  • parent: Se utiliza para definir el tipo padre. Solo útil en tipos heredados.

Ejemplo

'labels' => array(
	'name' => __( 'Super Dupers' ),
	'singular_name' => __( 'Super Duper' ),
	'add_new' => __( 'Add New' ),
	'add_new_item' => __( 'Add New Super Duper' ),
	'edit' => __( 'Edit' ),
	'edit_item' => __( 'Edit Super Duper' ),
	'new_item' => __( 'New Super Duper' ),
	'view' => __( 'View Super Duper' ),
	'view_item' => __( 'View Super Duper' ),
	'search_items' => __( 'Search Super Dupers' ),
	'not_found' => __( 'No super dupers found' ),
	'not_found_in_trash' => __( 'No super dupers found in Trash' ),
	'parent' => __( 'Parent Super Duper' ),
),

description

La descripción, es usada para explicar de que trata el nuevo tipo.

Ejemplo

'description' => __( 'A super duper is a type of content that is the most wonderful content in the world. There are no alternatives that match how insanely creative and beautiful it is.' ),

public

Se trata de un parámetro que permite personalizar todo lo referente al comportamiento público del nuevo tipo. En caso de estar activo (true) nos permitirá usar otros parámetros para personalizar nuestro post_type.

  • show_ui: Mostrar en las pantallas de Administración
  • publicly_queryable: Permitir que las consultas por este tipo estén disponibles a los usuarios.
  • exclude_from_search: Eliminar de la lista de resultados de búsquedas.
'public' => true,
'show_ui' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,

capability_type / capabilities

El tema de permisos es algo que también está reflejado en los Custom Post Types, permitiendo definir que capacidades tiene cada perfil de usuarios sobre el tipo.

Para ello usaremos el atributo “capabilities“:

  • edit_post: Alguien puede crear y editar un post específico
  • edit_posts: Capacidad de guardar los mensajes que permite la edición de este tipo de posts
  • edit_others_posts: Capacidad que permite la edición de los posts de los demás.
  • publish_posts: Capacidad de la concesión de la publicación de este tipo de posts.
  • read_post: Capacidad que controla la lectura de un puesto específico de este tipo de posts.
  • read_private_posts: Capacidad para permitir la lectura de los mensajes privados.
  • delete_post: Capacidad que otorga el privilegio de la supresión de posts.

Ejemplo

/* Global control over capabilities. */
'capability_type' => 'super_duper',

/* Specific control over capabilities. */
'capabilities' => array(
	'edit_post' => 'edit_super_duper',
	'edit_posts' => 'edit_super_dupers',
	'edit_others_posts' => 'edit_others_super_dupers',
	'publish_posts' => 'publish_super_dupers',
	'read_post' => 'read_super_duper',
	'read_private_posts' => 'read_private_super_dupers',
	'delete_post' => 'delete_super_duper',
),

supports

Permite definir que cajas van a estar visibles a la hora de crear/editar un nuevo post del tipo definido. Para ello pasaremos un listado con los nombres de las mismas.

  • title: Caja de título
  • editor: Editor donde va el contenido del post
  • comments: Posibilidad de activar/desactivar los comentarios
  • trackbacks: Capacidad de activar/desactivar los trackbacks
  • revisions: Permitir ver las revisiones
  • author: Caja para definir el autor
  • excerpt: Caja de excerpt.
  • thumbnail: Caja para definir la miniatura del post.
  • custom-fields: Caja de Custom Fields
  • page-attributes: Atributos de páginas

Ejemplo

'supports' => array( 'title', 'editor', 'excerpt', 'custom-fields', 'thumbnail' ),

rewrite

La URL también puede ser personalizada mediante un simple parámetro que especificará el enlace usado. Para ello debemos especificar estos parámetros:

  • slug: El prefijo del post
  • with_front:  Si el prefijo ha de estar en el frontend.

Más información

Actualización

  1. Custom Post Types UI, plugin que nos genera un cómodo interface web donde personalizar nuestros tipos de posts. Via.
  2. Magic Fields, plugin que permite generar interfaces amigables para todas las opciones de WordPress, inlcuye la opción de Custom Post Types.Via judas.

WordPress 3.0 “Thelonious” por fin ve la luz

19 jun

+ 4

El trabajo de 218 colaboradores durante medio año ha visto por fin la luz. Y es que la versión 3.0 de WordPress ha dado mucho que hablar, 1217 errores corregidos y muchas funcionalidades nuevas forman parte de esta versión que ofrece entre otras cosas, la posibilidad de administrar diferentes blogs desde un mismo panel de administración (WordPress MU) y la capacidad de eliminar el polémico usuario “admin”. Sin duda una nueva versión cargada de cosas interesantes:

  1. Menús, API para facilitar la creación de menús visibles en nuestros themes.
  2. Custom Post Types, personalización del tipo de posts, permitíendonos abrir un abanico de tipos para todo lo que se nos ocurra.
  3. Nueva API de Taxonomias, funcionalidad que nos permitirá registrar taxonomías fácilmente (Introducing WordPress 3 Custom Taxonomy)

[Descargar]