Como ejecutar código PHP en el Tema de Geeklog

La gran diferente entre Geeklog y el resto de los CMS que abundan, es que desde sus orígenes ha puesto especial atención a la seguridad, sacrificando un poco la belleza. Está basado en un modelo *nix-like, lo que significa manejo de permisos especiales para usuarios, directorio y archivos. Por otra parte sigue fielmente el modelo MVC (Modelo Vista Controlador), caracterizado por separar completamente el diseño del código.

La estructura de los Temas (Themes / Templates / Layouts) para la mayoría de los CMS permite mezclar tanto código HTML como PHP, es decir cualquier script puesto en alguno de los archivos del template es capaz de ejecutarse, siendo un poco paranoicos, estoy podría interpretase como una vulnerabilidad. Imaginemos el caso que un usuario poco experimentado descarga unos de esos templates que abundan en la Red y lo instala en su CMS sin siquiera revistar el contenido, podría encontrarse con sorpresas poco agradables.

Geeklog por defecto, permite la ejecución de PHP únicamente en el "header", cualquier código que se ponga en el "footer" o cualquier otro archivo no se ejecutara.

Pero, obviamente podremos llegar a necesitar de PHP para efectuar una tarea específica, imaginemos en caso más común: Usar un contador para llevar las estadísticas de visitas a nuestra página, me refiero a un contador propio. Geeklog no bloque de ninguna manera la ejecución de un script adicional, simplemente se hace de diferente manera para seguir conservando la seguridad.

 

Pasando por el lib-custom.php

El archivo localizado dentro de sytem > lib-custom.php, tiene la tarea de ser el intermediario entre el núcleo del Geeklog y las funciones propias del usuario, el núcleo cargara el contenido de este archivo siempre, por lo que las funciones que se declaren, estarán también siempre disponibles en cualquier parte del sistema, únicamente hay que llamarlas apropiadamente. En una Página Estática (Static Page) es muy simple, ya que contiene soporte para PHP, entonces bastará con hacer:

$mi_variable  = mi_funcion_personalizada();

 

CUSTOM_templateSerVars

En este tutorial nos basaremos a la función CUSTOM_templateSetVars , que como su nombre lo indica se nos permite definir “variables” que pueden ser usadas en los archivos del Tema, básicamente en: header.thtml y footer.thtml. Obviamente solo necesitaríamos pasar las variables en esos 2 archivos, ya que los bloques pueden ejecutar PHP directamente, es una de sus propiedades.

La función CUSTOM_templateSerVars tiene la siguiente estructura:

function CUSTOM_templateSetVars ($templatename, &$template)
{
    $mi_variable_1 = mi_funcion ();
    $mi_variable_2 = otra_funcion ();
    if ($templatename == 'header') {
       $template->set_var ('VARIABLE1', $mi_variable_1);
       }
    
    if ($templatename == 'footer') {
       $template->set_var ('VARIABLE2', $mi_variable_2);
     }
}

Es importante declarar las siguientes líneas:

    if ($templatename == 'header')

    if ($templatename == 'footer')

Y dentro de estas condiciones todas las variables que necesitemos según sea el caso, ya que sin eso no pasarán las variables. Y para hacer uso de estas variables, bastará con ponerlo entre “llaves {}” dentro de archivos implicados.

{VARIABLE1}

Esta es la manera más adecuada de enviar "todo" lo que deseemos al Tema sin mezclar código PHP y HTML, manteniento el estilo puro de Geeklog.

En los próximos tutoriales, haremos un uso más extensivo del lib-custom.php


Seguimiento

TURL de seguimiento para esta entrada: http://www.d-webstudio.net/trackback.php/php-layout-geeklog

No hay seguimientos para esta entrada.

0 comentarios