Sustituir función eregi por preg_match

PHP

La funcion ‘eregi‘ está obsoleta desde PHP 5.3.

Ahora debemos usar la función ‘preg_match‘ que es compatible con ‘Perl‘.

Para la sustitución, tenemos que tener en cuanta lo siguiente:

1. Es necesario añadir delimitadores a la expresión regular.
2. Algunas expresiones las tendremos que cambiar por sus equivalentes en PCRE (Perl Compatible Regular Expressions).
3. La ‘i’ de ‘eregi’ viene de case-insensitive, que en PCRE equivale a usar el flag ‘i’.

Sabiendo esto, vamos a un caso práctico:

Utilizando Joomla 1.5 con el editor JCE, nos podemos encontrar con el siguiente error:

Deprecated: Function eregi() is deprecated in XXX\plugins\editors\jce\libraries\classes\editor.php on line 236

En este caso, solo tenemos que ir a la línea en cuestión, y cambiar el código:

if( eregi( $key, $param ) ){

Por

if( preg_match( '/'.$key.'/i', $param ) ){

Esperamos que os sea de ayuda.

Migración de wordpress a nuevo dominio y hosting

Wordpress

En esta ocasión vamos a explicar brevemente como se cambia de hosting y de dominio una web que tenemos en marcha con WordPress.

1. Compramos el hosting y el dominio.

Evidentemente lo primero es comprar el dominio y el hosting que deseemos. Una vez hecho esto con el proveedor que queramos, nos llegaran todos los datos que necesitamos por correo.

2. Base de datos

Desde el panel de control de nuestro hosting, creamos una base de datos que se llame igual que la anterior y ponemos el mismo usuario y password.
Hecho esto, exportamos la base de datos del hosting viejo mediante phpMyAdmin o cualquier otro gestor de base de datos a un fichero sql. (Con la opción de ‘completar los inserts’)
Abrimos el fichero con un editor (p.e. Notepad++) y hacemos el reemplazo de la cadena del dominio antiguo por el dominio nuevo. Por ejemplo: “subdominio.dominioviejo.com” o “www.dominioviejo.com” por “www.dominionuevo.com”.
Entonces, abrimos el gestor de base de datos del hosting nuevo e importamos el fichero en la base de datos que habíamos creado.

3. Archivos

Pasamos todos los archivos y carpetas del servidor antiguo al nuevo. Es interesante ver si podemos comprimir en zip antes de descargar y descomprimir después de subir al nuevo para ahorrar tiempo, o si el hosting viejo tiene algún tipo de ‘file manager’ que te permita ‘copiar’ archivos y carpetas en otro servidor por ftp directamente y te ahorras el bajar y subir por ftp.

4. Configuración

Por último, solo nos queda hacer los cambios que corresponda en el fichero “wp-config.php” del servidor nuevo.
En caso de haber hecho el paso 2 tal cual lo hemos dicho, solo tenemos que cambiar la línea “define(‘DB_HOST’, ‘#new.sql.server#’);” y poner la dirección del nuevo servidor de base de datos. En algunos casos es posible que no haya que modificarlo si pone ‘localhost’.
Si el nombre de la base de datos, o el usuario, o el password no es el mismo que el anterior, también tendremos que cambiar las líneas que indican su configuración.

Con esto ya debemos tener el wordpress funcionando en el nuevo dominio.

Ahora solo faltaría redirigir todo el tráfico del dominio antiguo al nuevo.

5. Redirección 301

Para hacerlo, la mejor formar es modificar el .htacces del dominio antiguo (vale la pena que guardéis una copia del de ese momento por si acaso) para que quede con el siguiente código:

# Redireccion 301 al nuevo dominio
<IfModule mod_rewrite.c>
RewriteEngine On
redirectMatch 301 ^(.*)$ http://www.nuevodominio.com$1 
</IfModule>

Y ya está todo.

Podemos hacer la prueba de entrar en el dominio viejo, y ver cómo nos redirige al nuevo dominio, he incluso si vamos a una url concreta del dominio viejo, iremos a la url equivalente del dominio nuevo.
De esta forma, San Google nos debería respetar todo nuestro posicionamiento y no perderemos ni una sola visita. xD

Personalizar la imagen del avatar del admin en WordPress

Wordpress

Si estamos utilizando ‘gravatar’ lo más normal sería ingresar en gravatar.com con el mail que tengamos configurado en la cuenta del blog y personalizar la imagen del usuario.

Lo malo es que de esta forma, ese mismo avatar aparecería siempre que escribiéramos un comentario en cualquier blog de wordpress con gravatar activado y eso no es lo que queremos.

La idea es que independientemente de la cuenta de mail que usemos para administrar el blog, los comentarios del administrador deberían aparecer distinguidos con una imagen personalizada.

Hemos buscado algún plugin que haga esto, pero no lo hemos encontrado. Así que lo más sencillo que se nos ha ocurrido es modificar la función del core ‘get_avatar’.

Para ello, solo tenemos que abrir el archivo “wp-includes/pluggable.php” y en la línea 1627 añadimos:

if ($id == 1) {
    $out = get_bloginfo('template_directory') . '/images/avatar-admin.png';
}

Una vez subamos el archivo, para mostrar la imagen del administrador se usara la imagen que dejemos como “avatar-admin.png” en el directorio “images” de nuestro template.

Esperamos que os sea útil.

Happy coding!