Así es como funciona el proceso de representación del sitio en el CMS bluetronix
Con cada llamada a la página, el CMS bluetronix pasa por varios pasos de procesamiento. En este tutorial aprenderás sobre el proceso completo de renderizado y cuándo se realizan las verificaciones de seguridad, se ejecutan los scripts PHP, se reemplazan las variables de diseño y se generan las páginas HTML finales.
1. Cargar scripts de seguridad
Al comienzo, el CMS bluetronix carga los scripts relevantes para la seguridad. Esto incluye Secure Check, la verificación del número de llamadas, la preparación o verificación de parámetros de MySQL, así como el análisis de parámetros GET y POST.
Las verificaciones que no requieren conexión a la base de datos se realizan ya en este punto.
2. Cargar configuración del módulo
Si existe, se carga el archivo /bx_Mod/config_own.php. Los scripts y las variables de configuración definidas en él ya están disponibles al inicio del proceso de renderizado.
Iniciar sesión
El CMS inicia la sesión PHP con @session_start();. En particular, tres variables de sesión son importantes: $_SESSION["S_User"] para el usuario del CMS o modo de edición, $_SESSION["S_Language"] para el idioma actual y $_SESSION["Web_User"] para el usuario de un inicio de sesión en el frontend.
Cargar parámetros de página
A continuación, el CMS lee información sobre la llamada actual de las variables del servidor. $domain recibe el nombre de dominio de $_SERVER["SERVER_NAME"], $FileParameter el camino de la solicitud incluyendo parámetros GET de $_SERVER["REQUEST_URI"] y $file la ruta del archivo ejecutado de $_SERVER["PHP_SELF"].
$ReferURL contiene el valor de $_SERVER["HTTP_REFERER"], si este ha sido transmitido. Puede usarse, por ejemplo, al cargar marcos o secciones de páginas.
Establecer conexión con la base de datos
El CMS establece automáticamente la conexión a la base de datos. Después, las tablas de la base de datos del CMS están disponibles para más verificaciones y para cargar el contenido de las páginas.
Revisar nuevamente los parámetros GET y POST
Después de establecer la conexión a la base de datos, el CMS llama a SECUREGetPost();. Los parámetros GET y POST transmitidos se verifican nuevamente y se ajustan si es necesario. Ahora también se pueden realizar verificaciones que necesitan información de la base de datos.
Redirecciones de dominio, edición y lenguaje
Dependiendo de la configuración del CMS, del dominio llamado, del modo de edición, del idioma elegido y de los parámetros de llamada, puede ocurrir una redirección. Los posibles destinos son el dominio principal, el dominio de edición, así como dominios o URL específicos del idioma.
Redirección HTTPS
Si se ha llamado al sitio web sin HTTPS, se realiza una redirección a la versión SSL o HTTPS de la página.
Cargar scripts PHP centrales
Ahora el CMS carga sus funciones PHP centrales. Esto incluye por ejemplo BlueSMTPMail() para el envío de correos y BlueFormSend() para el procesamiento de formularios. Otras funciones centrales también se integran.
Cargar datos de la página desde 00_site
Los datos de la página solicitada se leen de la tabla de base de datos 00_site. En este proceso, se determinan variables del CMS como $Template.
Además, se inicializan $LayoutHTML y $SitePHP. $LayoutHTML contendrá más tarde el diseño HTML completo, mientras que $SitePHP contiene el código PHP que pertenece directamente a la página llamada.
Cargar diseño desde 00_layout
El diseño asignado a la página se carga de la tabla de base de datos 00_layout y constituye la base del procesamiento posterior en $LayoutHTML.
Establecer archivos JavaScript dependientes del idioma
Si hay archivos específicos del idioma disponibles, el CMS puede reemplazar los archivos estándar BxScript.js y BxHeadScript.js por variantes de idioma adecuadas, como BxScript_de.js o BxScript_en.js.
Aquí se ajustan las marcas de archivo __FV_/bx_script/BxScript_own_min.js__ o __FV_/bx_script/BxHeadScript_own_min.js__ en el diseño.
Generar encabezado y contenido dinámico
Ahora se generan contenidos dinámicos y se ejecutan scripts PHP específicos de la página. DynMenue() genera menús dinámicos, IncludeModul() incluye módulos configurados y EditMARK() establece las marcas de edición del CMS.
Con eval($SitePHP) se ejecuta el código PHP de la página actual; eval($IncludePHP) ejecuta scripts PHP incluidos.
Establecer parámetros de cambio para CSS y JavaScript
Para los archivos CSS y JavaScript se establece un parámetro de modificación. De este modo, el navegador puede cargar una nueva versión al actualizar los archivos, en lugar de usar un archivo desactualizado de su caché.
Por ejemplo, a partir de una referencia de archivo como /css/style.css, puede surgir una llamada con un parámetro de versión como /css/style.css?v2026....
Establecer modo oscuro o claro
El CMS lee el modo de presentación configurado de /bx_style/BxSource/CSSEditDarkLight.bx. Dependiendo del contenido del archivo, se establece el modo oscuro o claro en el diseño.
Establecer variables de configuración del módulo en el diseño
La configuración del módulo de /bx_Mod/config_own.php se aplica al diseño. Si, por ejemplo, el módulo de tienda, búsqueda, inicio de sesión o traducción está desactivado, los elementos de control correspondientes pueden ocultarse automáticamente.
Las marcas de diseño como __DB_GB_DesktopIconBasket_Display__, __DB_GB_DesktopIconSearch_Display__, __DB_GB_DesktopIconLogin_Display__ o __DB_GB_DesktopIconLang_Display__ se reemplazan por none.
Eliminar marcas de reemplazo restantes
Los marcadores del CMS que no se reemplazan se eliminan del HTML final. Esto incluye marcas que siguen los patrones __DB_...__ y __ST_...__ así como las marcas internas xxx designadas.
Eliminar comentarios HTML
El CMS elimina luego los comentarios HTML de $LayoutHTML. De este modo, el texto de comentario innecesario no se entrega al navegador.
Realizar traducción de idioma
Si $_SESSION["S_Language"] no es igual a $GBMainLang, los textos marcados se traducen al idioma actualmente utilizado. Las traducciones provienen de la tabla de base de datos Translation.
Si un texto necesario aún no está presente allí, se crea una nueva entrada en Translation. El CMS reconoce contenidos traducibles mediante las marcas My Text y My Text.
Reemplazar llamadas a imágenes a través de IMG.pl
Las llamadas e recortes de imágenes a través de IMG.pl se reemplazan por archivos de imagen producidos u optimizados previamente. La página HTML final puede acceder directamente a estas variantes de imagen.
Emitir página terminada
Al finalizar el procesamiento, $LayoutHTML se entrega al navegador con el tipo de contenido text/html; charset=utf-8, por ejemplo, a través de print $LayoutHTML;.
Para dominios no activados o internos, la salida se marca con noindex, nofollow para que estas páginas no sean indexadas por los motores de búsqueda.
Escribir caché
Después de la salida de la página, el CMS puede guardar la página generada en caché. El requisito es que no haya un S_User registrado, que la página no esté en modo de edición y que la caché para esta página esté activada.
En llamadas posteriores, se puede utilizar la página HTML guardada sin tener que ejecutar nuevamente todo el proceso de renderizado.
Preguntas Frecuentes
lo que los clientes nos preguntan con frecuencia
¿Qué es el proceso de renderizado del sitio?
Con esto se refiere el tutorial a los pasos de procesamiento con los que el CMS bluetronix genera la página HTML final a partir de los datos de la página y del diseño y la envía al navegador.
¿Qué verificaciones de seguridad se realizan antes de la conexión a la base de datos?
Antes de la conexión a la base de datos se realizan, entre otros, Secure Check, la verificación del número de llamadas, la preparación de parámetros MySQL y el análisis de parámetros GET y POST.
¿Cuándo se carga la configuración del módulo?
El archivo /bx_Mod/config_own.php se carga, si está disponible, antes del inicio de la sesión y antes de establecer la conexión a la base de datos.
¿Para qué se utilizan S_User, S_Language y Web_User?
S_User se refiere al usuario del CMS o modo de edición, S_Language al idioma actual de la página web y Web_User al usuario de un login en el frontend.
¿De qué tablas de base de datos provienen la página y el diseño?
Los datos de la página se cargan de 00_site. El diseño correspondiente se lee de 00_layout y se procesa en $LayoutHTML.
¿Cuándo se ejecuta el código PHP de una página?
Al generar el encabezado y el contenido dinámico, el código propio de la página se ejecuta a través de eval($SitePHP) y el código PHP incluido a través de eval($IncludePHP).
¿Cuándo se utilizan archivos JavaScript dependientes del idioma?
Cuando hay variantes de idioma adecuadas, BxScript.js y BxHeadScript.js pueden ser reemplazados por los archivos específicos del idioma correspondiente.
¿Cómo se determina el modo oscuro o claro?
El CMS lee el archivo /bx_style/BxSource/CSSEditDarkLight.bx y configura el modo de representación en el diseño según su contenido.
¿Cuándo se traducen automáticamente los textos?
Si el idioma actual difiere de $GBMainLang, los textos marcados se traducen según las entradas en la tabla Translation.
¿Bajo qué condiciones se cachea la página final?
La caché puede escribirse si no hay un S_User registrado, la página no está en modo de edición y la caché para esta página ha sido activada.