Escribe algo para buscar...

Crear CSSs y JSs dinamicos con PHP

  • Javi Mata
  • 12 may, 2017


Lo primero que debemos tener en cuenta es, como decía antes, que el servidor tenga soporte para PHP.

Lo que haremos será crear una llamada a nuestro archivo tal y como lo haríamos con un css normal con la diferencia que el archivo llamado en el src será nuestro .php, quedando algo como lo que sigue:

<link href=“css/custom_css.php” rel=“stylesheet” type=“text/css”></link>

Como comente antes, el ejemplo completo que pondré será usando información de las variables de Joomla, esto es utilizando un template que realice, en dicha plantilla tengo algunas opciones de configuración como color de fondo, color de textos, etc.. si no utilizas joomla la primer parte puedes saltarla.

Utilización del core de Joomla en archivo externo PHP:

<?php

define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);

define('JPATH_BASE', realpath(dirname(__FILE__).'/../../..' ) . '');

require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php');
require_once (JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php');

$mainframe  = &JFactory::getApplication('site');
$params = JFactory::getApplication()->getTemplate(true)->params;​


Aquí lo que hago es utilizar el core para llamar a la información del template y poder utilizar las variables quedando algo así:

$templateBackgroundColor = $params->get('templateBackgroundColor');

Esto podría aplicarse también a componentes y módulos.

Lo siguiente será darle una salida al archivo .php en formato CSS agregando un content-type al header así:

header("Content-type: text/css; charset: UTF-8");

El header para javascript es:  header ('Content-Type: text/javascript; charset=utf-8');

Ya por ultimo, solo habrá que cerrar nuestra etiqueta PHP ( ?> ) y después empezar a meter el css utilizando nuestras variables declaradas antes, un ejemplo sería:

body { background: <?php echo $templateBackgroundColor;?> !important;}

Con lo que el código final quedaría algo así:

<?php

define(‘_JEXEC’, 1); define(‘DS’, DIRECTORY_SEPARATOR);

define(‘JPATH_BASE’, realpath(dirname(FILE).’/../../..’ ) . ”);

require_once (JPATH_BASE . DS . ‘includes’ . DS . ‘defines.php’); require_once (JPATH_BASE . DS . ‘includes’ . DS . ‘framework.php’); require_once (JPATH_BASE . DS . ‘libraries’ . DS . ‘joomla’ . DS . ‘factory.php’);

$mainframe = &JFactory::getApplication(‘site’); $params = JFactory::getApplication()->getTemplate(true)->params;

$footerColorFondo = $params->get(‘footerColorFondo’); $FooterColorTexto = $params->get(‘FooterColorTexto’);

header(“Content-type: text/css; charset: UTF-8”); ?> body { background: <?php echo $templateBackgroundColor;?> !important;} footer { background: <?php echo $footerColorFondo;?>; color: <?php echo $FooterColorTexto;?>; } ?>

Usando esta misma técnica podría aplicarse también a JS, en mi caso particular lo estoy adaptando a un módulo de formularios para la validación y algunas otras funcionalidades.

Espero sus comentarios al respecto y que les sirva ;-)

Síganme en Twitter: @Javi_Mata



Tags:
Compartir:

Artículos relacionados

Cómo conectarse a los Webservices en Joomla 4 con Token

Cómo conectarse a los Webservices en Joomla 4 con Token

  • Javi Mata
  • 10 ago, 2020

Aprende de manera rápida y fácil a conectarte a la nueva funcionalidad de Joomla 4, los Webservices utilizando autenticación con Token, usaremos Postman y PHP.

leer más
Como instalar Joomla 4 Beta 2

Como instalar Joomla 4 Beta 2

  • Javi Mata
  • 10 ago, 2020

Aprende como instalar Joomla 4 Beta 2 y no morir en el intento, todo de manera fácil y en unos cuantos minutos

leer más
Como limpiar un sitio Joomla hackeado

Como limpiar un sitio Joomla hackeado

  • Javi Mata
  • 12 may, 2017

Los queridos hackers están cada vez más impertinentes y fastidiosos, cada vez vulneran más sitios para obtener sus propios beneficios llenando de links y scripts maliciosos.Cada vez usan técnicas más

leer más