Comprobar si un usuario es administrador en WordPress

Cuando trabajamos con WordPress, uno de los puntos básicos es definir diferentes vistas en función del rol del usuario. En la mayor parte de las ocasiones, la diferencia será: es administrador, no lo es.

¿Para qué puede servirnos esto? Desde poner un enlace a editar entrada a otro de eliminar comentarios en tu tema, pasando por todo lo que podáis imaginar que queráis dividir entre visitantes de vuestro sitio y vosotros que sois los administradores.

El código:

if(current_user_can('manage_options'))
{
  // solo administrador
}
else
{
  // resto
}

Leer más » 1 Comentario

Seguridad en formularios WordPress: usando nonce

Cuando usamos WordPress como un CMS o incluso como una API y desarrollamos para él, no serán pocas las veces que tengamos que hacer operaciones de inserción y edición de datos mediante formularios.

Tener un formulario en una aplicación web, es un punto de entrada a nuestro sistema y un sitio complicado en lo que a seguridad se refiere. Si no cuidamos este aspecto también en WordPress, lo que es un CMS seguro, puede convertirse en un problema.

Para resolver este tema, la API de WordPress nos proporciona un mecanismo muy sencillo llamado nonce, que viene del inglés: número usado sólo una vez,  number used once.

Se usan en todo tipo de peticiones: salvando opciones en el administrador, haciendo peticiones AJAX o llevando a cabo cualquier acción susceptible de un problema de seguridad intercambiando información.

Leer más » 1 Comentario

Reparar y optimizar todas las bases de datos en MySQL

Probablemente, en alguna ocasión te hayas enfrentado vía log o vía mensaje de urgencia con un mensaje de este tipo: “table marked as crashed and should be repaired” cuando trabajas con MySQL. Más aún si has tenido un reinicio de emergencia, si usas MyISAM o si tienes problema con tu sistema de ficheros (o tus discos).

Puedes tratar de reparar tabla a tabla, sin embargo, lo más productivo es hacer todas de una vez. Antes de cualquier operación de este tipo, haz una copia de todo por si acaso (aquí en Linux Hispano hablé de cómo hacer backups y recuperarlos).

La orden a ejecutar será la siguiente y el resultado lo veréis en la consola, si OK o si hay problemas:

mysqlcheck -u root -p --auto-repair --optimize --all-databases

Leer más » 1 Comentario

Reiniciar

Leer más » 4 Comentarios

Sencillo ejemplo de tratamiento de imágenes con Octave

imagenesoctave

NOTA: este tutorial es parte del curso de Octave de Linux Hispano.

Últimamente soy un adepto a Octave. Hace unas semanas publiqué un primer programa en Octave y un segundo programa en Octave después de cómo instalar Octave en Ubuntu Linux. En esta ocasión os muestro un tercer ejemplo para conocer con un ejemplo sencillo el tratamiento de imágenes.

Ésta es la imagen de ejemplo que vamos a utilizar:

imagen

En este caso se va a intercambiar el cuarto superior izquierdo de la imagen con el cuarto inferior derecho. Éste es el código de Octave necesario para realizarlo:

Leer más » 3 Comentarios

Lo mejor de mi RSS del 14 al 20 de enero de 2013

Leer más » 1 Comentario

Lo mejor de mi timeline del 12 al 18 de enero

https://twitter.com/Luweeds/status/292069800576942081

Leer más » 1 Comentario

¿Por qué no debemos usar require_once en PHP? ¿Qué soluciones tengo?

Cuando desarrollamos es muy frecuente que necesitemos leer código de otros ficheros, los lenguajes y las tecnología difieren en la forma, pero es algo básico y común a todos ellos (salvo excepciones). En PHP una forma cómoda de hacerlo es con require_once o include_once.

¿Por qué cómoda? Porque incluimos ficheros sin preocuparnos de si ya han sido incluidos. PHP lo hace por nosotros.

¿Qué problema hay? PHP al buscar si han sido incluidos o no, consume una cantidad de recursos y de tiempo de ejecución que siempre que podamos, debemos ahorrárnoslo.

¿Qué soluciones hay frente a este problema? Voy a detallar algunas de ellas, pero seguro que tú conoces alguna más que te funciona.

Usar un framework o un CMS

Si usas un entorno de este tipo, probablemente él te dote de funciones similares en funcionalidad que esquivan este problema. Por ejemplo en WordPress uso mucho get_template_part.

Indicar mediante define si se ha incluido o no

La idea sería algo así:

if (!defined('MiFichero')) {
    require('MiFichero');
    define('MiFicherp', 1);
}

De esta forma, con esta bandera, ya tenemos siempre presentes si está incluido o no (podemos hacer una función con ese código para reutilizarlo).

Leer más » 6 Comentarios

Premios PortalProgramas – Mejor Software Libre de 2012

Este medio colabora con estos importantes premios, los más importantes diría yo que se celebran a este nivel en la comunidad de Software Libre española y que acaban de volver a ser noticia. La edición a los mejores programas de software libre de 2012 acaba de anunciarse.

En total más de 11.000 votos que han dado lugar a estos resultados. Dos de las categorías han recibido además como premio especial una donación de 300 euros: “Mejor Blog de Software Libre” y “Mayor potencial de crecimiento”.

Resumiendo mucho (os recomiendo leer el enlace si queréis ahondar en la clasificación y los detalles), por partes.

Mejor blog de software libre

  1. Software Libre y Cooperación
  2. Open-Office.es
  3. HispaLinux

Leer más » 1 Comentario

Segundo programa en Octave

octave

NOTA: este tutorial es parte del curso de Octave de Linux Hispano.

Hace unos días mostré un primer programa en Octave después de cómo instalar Octave en Ubuntu Linux. En esta ocasión os muestro un segundo ejemplo para empezar con la función de ver gráficas con plot.

Leer más » 3 Comentarios