Avisos
Vaciar todo

Problema con variables globales  

 
FRANCISCO
 FRANCISCO
Usuario activo

Buenos días,

hasta ahora en mi aplicación web presento información de dos meses mediante dos pestañas, y en cada pestaña se presenta la información de un mes diferente. Cada pestaña lo que hace es ir a vistas específicas con los datos de su mes respectivo, pero ahora he decidido presentar información de los últimos seis meses, de tal forma que si siguiera el mismo criterio que hasta ahora debería de crear un montón de vistas añadidas. Ante esta situación, lo que estoy pensando/haciendo es crear una vista única con los datos de los últimos seis meses, de tal forma que cada pestaña acuda a la misma vista pero filtrando solamente con la información de su mes y año respectivos.

Para ello, he creado la acción que presento a continuación en el fichero functions.php, y que consiste en crear una serie de variables globales con los meses y años adecuados que sean visibles desde cualquier otro lugar de la web:

function variables_globales() {
 
// Defino la variable global
  global $gvariable;
 
// Obtengo la fecha actual
$hoy = getdate();
 
// Calculo variables del mes siguiente
if ($hoy["mon"] == 12) {
$mes = 1;
$año = $hoy["year"] + 1;
}
else {
$mes = $hoy["mon"] + 1;
$año = $hoy["year"];
};
$mes_año_siguiente = mes_año($mes, $año);
$mes_siguiente = $mes;
$año_mes_siguiente = $año;
 
// Claculo variables del mes actual
$mes_año_actual = mes_año($hoy['mon'], $hoy['year']);
$mes_actual = $hoy['mon'];
$año_mes_actual = $hoy['year'];
 
// Calculo variables del mes anterior
if ($hoy["mon"] == 1) {
$mes = 12;
$año = $hoy["year"] - 1;
}
else {
$mes = $hoy["mon"] - 1;
$año = $hoy["year"];
};
$mes_año_anterior = mes_año($mes, $año);
$mes_anterior = $mes;
$año_mes_anterior = $año;
 
// Ahora asigno los valores a la variable global que será un array
$GLOBALS['gvariable']['mes_año_siguiente'] = $mes_año_siguiente;
$GLOBALS['gvariable']['mes_siguiente'] = $mes_siguiente;
$GLOBALS['gvariable']['año_mes_siguiente'] = $año_mes_siguiente;
$GLOBALS['gvariable']['mes_año_actual'] = $mes_año_actual;
$GLOBALS['gvariable']['mes_actual'] = $mes_actual;
$GLOBALS['gvariable']['año_mes_actual'] = $año_mes_actual;
$GLOBALS['gvariable']['mes_año_anterior'] = $mes_año_anterior;
$GLOBALS['gvariable']['mes_anterior'] = $mes_anterior;
$GLOBALS['gvariable']['año_mes_anterior'] = $año_mes_anterior; 
 
}
 
add_action('wpdatatables_before_get_table_metadata', 'variables_globales');

Ya he probado este código por fuera y funciona correctamente, generándome bien los valores esperados.

Los problemas me surgen cuando intento sustituir estos valores globales en los shortcodes del plugin wpdatatables que utilizo para presentar los datos en forma de tablas, ya que no me presentan ninguna información porque no reconoce los valores de las variables globales.

image

Si sustituyo los valores de var2 y var3 por valores concretos de mes y año respectivamente, entonces sí que me presenta la información correcta de cada mes/año indicado.

La pregunta que planteo es: ¿ qué se puede hacer para que las variables globales definidas se comporten realmente como tales y puedan ser sustituidas correctamente en los shortcodes ?

 

Un saludo y gracias de antemano

Francisco Gutiérrez

Contenido solo visible a usuarios registrados

Citar
Respondido : 13/03/2024 10:17 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Francisco.

No podemos dar soporte de código en el foro.  Somos conscientes que en algún caso, por tener unos requerimientos técnicos o falta de tiempo prefieras delegar esa tarea a un especialista. En ese caso, podemos recomendarte a profesionales con los que solemos colaborar.

Rafa Noguera y su equipo trabajan habitualmente en desarrollo web con clientes de Webempresa, puedes ponerte en contacto con ellos para analizar tu caso concreto y pedir un presupuesto personalizado. Tienen años de experiencia, y puedes escribirles a rafa@nosolocodigo.com Aquí puedes ver más detalles sobre su experiencia y su forma de trabajar: https://www.webempresa.com/directorio-colaboradores.html?pid=87&sid=56:nosolocodig o" target="_blank" rel="nofollow noopener noreferrer"> https://www.webempresa.com/directorio-colaboradores.html?pid=87&sid=56:nosolocodigo

Pablo Velasco, de Caltener, tiene más de 15 años de experiencia trabajando con clientes de Webempresa, conoce bien nuestro servicio y podrá ayudarte a encontrar la mejor solución para tu web. Puedes contactar con él escribiendo a info@caltener.com y también conocer mejor los ámbitos en los que está especializado en este enlace: https://www.webempresa.com/directorio-colaboradores.html?pid=87&sid=117:caltene r" target="_blank" rel="nofollow noopener noreferrer"> https://www.webempresa.com/directorio-colaboradores.html?pid=87&sid=117:caltener

 

Un saludo

ResponderCitar
Respondido : 13/03/2024 3:05 pm