Insertar elemento en un array con PHP: array_push contra $array[]=

Los array en PHP son un tipo de dato muy flexible, podemos usarlo como una matriz real, una lista (vector), un tabla hash, un diccionario, una colección, una pila, una cola… es decir, es realmente flexible.

Una de las enormes ventajas que tiene para el desarrollador de alto nivel, es que su carácter dinámico ofrece una enorme facilidad al insertar datos dentro del mismo. Sin embargo, tenemos dos métodos básicos para insertar datos, cada uno con sus ventajas e inconvenientes. Veámoslos.

$array[]=

Es la forma más básica y la más rápida, aunque tiene un problema, sólo permite añadir un sólo elemento en cada ocasión. Ejemplo de uso:

Leer más » 23 Comentarios

Añadir widgets personalizados al escritorio de WordPress

Cuando personalizas una instalación WordPress para un cliente o para ti mismo, el panel de administración o escritorio es de los puntos en los que más tenemos que centrarnos. De su personalización depende en gran medida la sensación que demos de producto empaquetado o, por el contrario, producto personalizado.

WordPress nos provee de dos herramientas básicas para la interacción en el escritorio: el menú lateral y los widgets. Veamos un ejemplo de “¡Hola Mundo! en un widget de escritorio.

En nuestro functions.php deberemos definir lo siguiente:

Leer más » 1 Comentario

Parámetros opcionales en funciones de JavaScript

El desarrollo web siempre tiene dos interacciones: la que se produce en el lado del servidor y la que se produce en el lado del cliente. Esta segunda cada vez tiene más relevancia para conseguir una mejor experiencia del usuario y JavaScript es el responsable de ésto.

JavaScript es una de esas tecnologías que se pensó para abordar pequeños problemas, pero que por cuestiones de compatibilidad y aceleración tecnológica, se ha convertido en una tecnología versátil a la vez que necesaria para poder afrontar las exigencias de la actualidad.

En lenguajes como PHP, podemos hacer uso de parámetros opcionales (aquí explicaba su uso al hablar de cómo podíamos imitar la sobrecarga de funciones en el curso de PHP orientado a objetos), por ejemplo:

function crearPersona($nombre = "")

Y sus respectivas llamadas:

crearPersona("Javier");
crearPersona();

Sin embargo, en JavaScript no tenemos esta posibilidad, aunque al igual que ocurría con la sobrecarga de funciones en PHP, podemos imitarlo. Veamos cómo.

Leer más » 4 Comentarios

Aumentar el tamaño máximo de subida de ficheros con Apache y PHP

Es muy frecuente que cuando estemos desarrollando algún tipo de aplicación web, tengamos la necesidad de poder subir ficheros. La subida de ficheros es una operación relativamente simple, pero tiene una limitación, el tamaño del mismo. Esta limitación podemos gestionarla a través de PHP dentro del php.ini (en función de cuál sea tu distribución se encontrará en un sitio u otro, en mi caso está en /etc directamente).

Logo PHP

¿Qué parámetros deberemos modificar?

Leer más » 1 Comentario

Eliminar widgets del escritorio en WordPress

Los widgets dentro del escritorio, son un componente relativamente novedoso en WordPress (aparecieron en la versión 2.7). Pueden ser útiles para mostrar ciertos datos, por ejemplo los resultados de Google Analytics.

Sin embargo, debemos asegurarnos tener control sobre ellos, cuando le instalamos WordPress a un cliente y modificamos muchas cosas mostrar más widget de la cuenta puede ser un problema.

Para conseguir personalizar el escritorio usaremos el siguiente método.

function quitar_widgets_escritorio() {
 global $wp_meta_boxes;

 // quitar el widget de enlaces entrantes
 unset($wp_meta_boxes['dashboard']['normal']['core']
['dashboard_incoming_links']);	

 // quitamos unos pocos más: right-now, primario y secundario
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}

// lo unimos a su hook
add_action('wp_dashboard_setup', 'quitar_widgets_escritorio' );

Como podéis ver la idea es hacer un unset del elemento deseado dentro de la colección: $wp_meta_boxes[‘dashboard’]. En el Codex tenéis más información sobre esta colección y todo lo referente a los widgets del escritorio.

Quitar widgets dependiendo del rol de usuario

Por supuesto, también podemos realizar esta misma operación teniendo en cuenta el rol del usuario. Es muy útil si queremos distinguir entre: administradores, editores, colaboradores… y mostrarle a cada uno la información deseada:

Leer más » 1 Comentario

Deshabilitar notificaciones de actualización automática en WordPress

Si tenemos usuarios de WordPress que no son administradores del portal, no deberían ser notificados de ningún tipo de actualización. La idea es que si vendemos WordPress como un servicio y tenemos la política de: nosotros administrar el portal, el cliente ser usuario del servicio; no debemos permitir que aparezcan notificaciones de actualizaciones automáticas. read more

Leer más » 1 Comentario

Enviar correo usando un servidor SMTP con PHP

Dentro de las funcionalidades básicas de cualquier aplicación web se encuentra la comunicación con el usuario a través de correo electrónico. Tenemos la opción fácil y directa de usar la función mail() de PHP que usa un demonio de SMTP propio (suele ser sendmail), sin embargo, los filtros de spam harán su labor y aunque seamos confiables, tenemos todas las papeletas para que nos tachen de los contrario y el correo no llegará a su destino.

Enviar correo usando servidor SMTP con PHP

La solución es usar un servidor SMTP externo, aquí mismo explicamos cómo hacer uso del servidor SMTP de Gmail para usarlo dentro de WordPress, pero vamos a explicaros un método válido para cualquier aplicación que desarrolléis con PHP.

Lo primero que tenemos que hacer es descargar la clase que se encargará del trabajo, es software libre bajo licencia GPL, hablamos del proyecto PHPMailer. Descargamos la última versión disponible para nuestra versión de PHP (aquí hablaremos de la versión más actual, la que corresponde con PHP 5) y descomprimimos.

Nos comenta danipelon que la versión oficial del proyecto está ahora en GitHub, esta es la dirección.

Leer más » 26 Comentarios

¿Cómo conocer desde un plugin el directorio del fichero wp-config.php en WordPress?

Si estamos desarrollando un plugin para WordPress, en ocasiones, necesitaremos llegar al fichero wp-config.php para hacer una serie de comprobaciones o para leer unos datos de configuración.

Sin embargo, no siempre será la misma ruta ya que nuestro plugin o tema puede que esté instalado en un directorio no estándar o que la llamada se haga estando en un directorio a un nivel distinto. Para ahorrarnos problemas de rutas os presento el método siguiente:

while(!is_file('wp-config.php')){
  if(is_dir('../')) 
      chdir('../');
  else 
      die('Could not find WordPress.');
}

Leer más » 1 Comentario

Cómo obtener geodatos de una dirección IP en PHP

Cuando desarrollamos servicios web, puede resultarnos de interés conocer geodatos de nuestro visitante: ciudad, región, código de área, etc. ¿Cómo averiguar estos datos usando PHP? Muy simple, haciendo una llamada a geoplugin.net.

Si hacemos una llamada del siguiente tipo (la dirección IP es la del servidor DNS de la UCO): http://www.geoplugin.net/php.gp?ip=150.214.110.3, obtenemos una salida en forma de cadena con un objeto de PHP serializado.

Por lo tanto nos limitaremos a:

  1. Hacer una llamada a dicho servicio web
  2. Descargar el resultado de la petición en forma de cadena con la función file_get_contents()
  3. Usar el proceso inverso a serializar para recuperar los diferentes valores

Leer más » 3 Comentarios