PHP te facilita la vida

Últimamente me he estado dedicando (al menos parcialmente) a aprender en serio algo de PHP y desarrollar un sitio web que pronto estará listo y ya conocerán… no hay necesidad de emocionarse, no es una startup ni nada parecido, sino un proyecto relacionado con un programa de post-grado.

Uno de los requisitos del sitio era mostrar la foto de los profesores junto a los seminarios que dictan y en otras partes del sitio, lo que en principio y sin ninguna complicación se puede hacer con simple HTML, aunque ello se me hacía pesado por dos motivos:

  1. Hay hartos lugares en los que poner las fotos, con lo que repetir mil veces las cosas comienza a ser un poco más aburrido
  2. La URL del proyecto aun no está definida, por lo que antes de subir y montar todo “para el público”, tendría que buscar-y-reemplazar la URL de muuuuchas cosas
  3. (Agrego un tercer motivo: ganas de aplicar algo de lo poco que he aprendido

Entonces, la solución parecía sencilla: inventar algo con PHP. Dado que no soy un genio de la cuestión ni mucho menos, mis requisitos se reducían a dos:

  1. Que la URL de las imágenes fuera re-definible
  2. Y, lógicamente, que la función se encargara de mostrar la foto adecuada de acuerdo al contexto

Como estoy trabajando con WordPress como CMS (sería un gasto innecesario hacerlo de otro modo, ya que éste lo conozco bastante bien y se adecúa a las necesidades del proyecto), la primera parte estaba solucionada, gracias a get_bloginfo('url').

Y para lo segundo… una simple variable que se pasa como argumento a la función.

Y el resultado es el siguiente:

function foto_profesor($que_profesor){
	$blog_url = get_bloginfo('url');
	echo'<img alt="' . $que_profesor . '" src="' .$blog_url . '/wp-content/themes/magister/img/profesores/' .$que_profesor. '.jpg" class="foto-profesor" />';
}

Así de sencillo y básico… y para insertarlo donde necesito:

<?php foto_profesor('apellido'); ?>

Y listo. A veces es bueno gastar un momento en algo así para ahorrar tiempo después.

  • http://www.torresx.com/ Alejandro Torres

    Sencilla la solucion pero muy util :-D

  • http://bolsanegra.com myself

    Es correcto. Por muchas razones PHP y muchos lenguajes están pensados para facilitarnos la existencia. ^^

  • http://myspace.wihe.net wihe

    Interesante solución, también me gusta customizar el wordpress y hasta el momento lo había utilizado para un par de proyectos pero mientras sigo investigando mas al respecto me he dado cuenta que se puede lograr muchas cosas interesantes en wordpress, adelante haber si sigues con tus experimentos y los posteas para seguir aprendiendo y poder compartir conocimientos.

    Saludos

    wihe

  • Pingback: Crear un Tumblelog con WordPress « LOS MEJORES POST

  • http://culturadigital.org Covi

    Sé que es muy muy vieja la entrada y Yukei tendrá ya muchos más conocimientos. Pero, solo para información de alguien que pueda estar empezando, y solo para esto (y aunque sé también que sólo es un ejemplo), una cuestión muy importante en materia de seguridad:

    Filtrar los datos que recibimos, siempre y asegurarnos de que sólo sean los que queremos.
    En este caso un querríamos una cadena, deberíamos limpiarla para evitar XSS, archivos remotos, etc.

    En mi caso, cuando tengo que usar algo de ese tipo (imágenes en un directorio p.ej), suelo usar una función o método que me monta un array con los archivos, digamos, públicos (que permitimos) en ese directorio. Opcionalmente se le puede añadir recusrsividad y niveles de directorios, pero siempre con nuestra normas: patrones de archivos válidos, directorios donde buscar…

    Luego solo sería tan fácil como ver si el archivo solicitado: $que_profesor está en el array de nuestros valores admitidos, y si no, usar uno por defecto. …O más bien al contrario (buenas prácticas): establecer ante todo uno por defecto, y luego procesar si mostramos el del usuario o no.

    Las funciones glob (cuidado con esta), scandir y, en especial, la librería SPL (DirectoryIterator…), son cojonudas y muy divertidas para esto ;)


    Como decía, sólo quería indicar la importancia de, por pequeño que sea nuestro desarrollo o porción de código, implementar, SIEMPRE, la seguridad y filtrado de datos de usuario.

    Un saludo; como siempre, un placer pasarse por Yukei.

    • http://www.yukei.net Felipe Lavín Z.

      Tienes absolutamente toda la razón… De hecho, cuando publiqué esto recién estaba comprendiendo cómo escribir una función… En fin, ha pasado agua bajo el puente, como es el dicho (no es que ahora sea un iluminado, pero comprendo algo más)

      Saludos

  • Pingback: Sanitizar consultas con cláusulas “IN” con $wpdb en WordPressGeekzone | Geekzone