Documentación oficial para el tema principal UCAB
El Tema UCAB para WordPress constituye un desarrollo personalizado para la Universidad Católica Andrés Bello basado en el tema principal Divi, el cual brinda numerosas funcionalidades de cara al usuario final que estará manteniendo constantemente su sitio, aunado a una extensa documentación capaz de proveer los conocimientos necesarios para poder dar inicio en el uso de dicha solución.
La documentación del Tema UCAB se puntualiza a continuación para facilitar la lectura de la misma:
mod_rewrite
.Es posible utilizar XAMPP en caso de querer generar rápidamente un ambiente de desarrollo que incluya Apache + PHP + MySQL. (Descargar)
Para el archivo de configuración php.ini
, se recomienda el uso de las siguientes variables con sus respectivos valores:
post_max_size=20M
upload_max_filesize=20M
max_input_time=120
max_input_vars=1000
memory_limit=128M
Esta configuración es solamente válida para ambientes de desarrollo.
Para poder realizar la instalación del Tema UCAB en la instancia WordPress requerida, se debe de contar inicialmente con los siguientes archivos:
El equipo de la Unidad Web (UCAB) estará encargado de proveer siempre la última versión de los archivos antes mencionados previo acuerdo con el(los) interesado(s).
Los enlaces provistos previamente hacen referencia al último lanzamiento oficial del Tema UCAB y plugin Módulos personalizados UCAB a través de GitHub. Solo aquellos con acceso a los repositorios, podrán realizar la descarga directa.
Inicialmente, se requiere definir el modo debug en el que funcionará el plugin Módulos personalizados UCAB a través del archivo de configuración de WordPress wp-config.php
. Para ello, solo debe de añadirse la definición define('UCAB_DEBUG', false)
, la cual se recomienda hacer de forma consecutiva a la definición del modo debug propio de WordPress, siendo el resultado final similar al siguiente:
...
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
define('UCAB_DEBUG', false);
...
Al utilizar
define('UCAB_DEBUG', false)
, el plugin Módulos personalizados UCAB hará uso del bundle previamente generado en el último lanzamiento, permitiendo cargar correctamente los módulos personalizados a través del Constructor Divi (front end).
Se hará uso única y exclusivamente de la definición
define('UCAB_DEBUG', true)
cuando se requiera realizar un desarrollo local sobre los módulos personalizados pertenecientes al plugin. Para mayor información, dirigirse al apartado Desarrollo de módulos personalizados.
Posteriormente, se procederá a instalar el Tema UCAB por medio de su archivo comprimido (ZIP) como se procedería con cualquier otro tema desde el Administrador de WordPress, específicamente en la sección Apariencia > Temas
.
Asimismo, el plugin Módulos personalizados UCAB sería instalado igualmente desde el Administrador de WordPress, pero a través de la respectiva sección Plugins
.
Posteriormente, se debe de emplear la configuración inicial contemplada para el Personalizador de temas en WordPress aplicando los cambios que sean requeridos según las necesidades del sitio a ser configurado.
En última instancia, se recomienda realizar la configuración de las opciones principales del tema desde el Administrador de WordPress, específicamente en el apartado Divi > Opciones del tema
.
El Tema UCAB permite realizar una configuración rápida de las opciones antes mencionadas por medio de un archivo en formato JSON, el cual contiene todas las definiciones comunes requeridas.
A continuación, se presenta la estructura JSON que debe de contemplar el archivo de configuración para las opciones principales del tema:
{
"context": "epanel",
"data": {
"divi_logo": "",
"divi_fixed_nav": "on",
"divi_gallery_layout_enable": "false",
"divi_color_palette": "#ffc526|#40b4e5|#047732|#f5821f|#00a79d|#0071bb|#50237f|#c4151c",
"divi_grab_image": "false",
"divi_blog_style": "false",
"divi_sidebar": "et_left_sidebar",
"divi_shop_page_sidebar": "et_left_sidebar",
"divi_show_facebook_icon": "false",
"divi_show_twitter_icon": "false",
"divi_show_google_icon": "false",
"divi_show_rss_icon": "false",
"divi_facebook_url": "#",
"divi_twitter_url": "#",
"divi_google_url": "#",
"divi_rss_url": "",
"divi_woocommerce_archive_num_posts": 9,
"divi_catnum_posts": 6,
"divi_archivenum_posts": 5,
"divi_searchnum_posts": 5,
"divi_tagnum_posts": 5,
"divi_date_format": "M j, Y",
"divi_use_excerpt": "false",
"divi_responsive_shortcodes": "on",
"divi_gf_enable_all_character_sets": "on",
"divi_back_to_top": "on",
"divi_smooth_scroll": "on",
"divi_disable_translations": "false",
"divi_minify_combine_scripts": "on",
"divi_minify_combine_styles": "on",
"divi_custom_css": "",
"divi_enable_dropdowns": "on",
"divi_home_link": "on",
"divi_sort_pages": "post_title",
"divi_order_page": "asc",
"divi_tiers_shown_pages": 3,
"divi_enable_dropdowns_categories": "on",
"divi_categories_empty": "on",
"divi_tiers_shown_categories": 3,
"divi_sort_cat": "name",
"divi_order_cat": "asc",
"divi_disable_toptier": "false",
"divi_scroll_to_anchor_fix": "false",
"divi_postinfo2": ["date", "categories"],
"divi_show_postcomments": "on",
"divi_thumbnails": "on",
"divi_page_thumbnails": "false",
"divi_show_pagescomments": "false",
"divi_postinfo1": ["date", "categories"],
"divi_thumbnails_index": "on",
"divi_seo_home_title": "false",
"divi_seo_home_description": "false",
"divi_seo_home_keywords": "false",
"divi_seo_home_canonical": "false",
"divi_seo_home_titletext": "",
"divi_seo_home_descriptiontext": "",
"divi_seo_home_keywordstext": "",
"divi_seo_home_type": "BlogName | Blog description",
"divi_seo_home_separate": " | ",
"divi_seo_single_title": "false",
"divi_seo_single_description": "false",
"divi_seo_single_keywords": "false",
"divi_seo_single_canonical": "false",
"divi_seo_single_field_title": "seo_title",
"divi_seo_single_field_description": "seo_description",
"divi_seo_single_field_keywords": "seo_keywords",
"divi_seo_single_type": "Post title | BlogName",
"divi_seo_single_separate": " | ",
"divi_seo_index_canonical": "false",
"divi_seo_index_description": "false",
"divi_seo_index_type": "Category name | BlogName",
"divi_seo_index_separate": " | ",
"divi_integrate_header_enable": "on",
"divi_integrate_body_enable": "on",
"divi_integrate_singletop_enable": "on",
"divi_integrate_singlebottom_enable": "on",
"divi_integration_head": "",
"divi_integration_body": "",
"divi_integration_single_top": "",
"divi_integration_single_bottom": "",
"divi_468_enable": "false",
"divi_468_image": "",
"divi_468_url": "",
"divi_468_adsense": "",
"divi_show_instagram_icon": "false",
"divi_instagram_url": "#",
"divi_enable_responsive_images": "on"
},
"defaults": "",
"images": []
}
Estas opciones deben de ser copiadas y almacenadas en un archivo en formato JSON para luego poder ser importadas en el sitio específico. Para importar el archivo de configuración, se debe de presionar el botón denominado Importar y exportar, ubicado en la parte superior derecha del panel de configuración.
Seguidamente, aparecerá una pequeña ventana modal que nos ofrecerá la opción de Exportar o Importar la configuración. Al seleccionar el apartado Importar, se podrá apreciar un control de carga de archivos a través del cual se realizará la carga del archivo de configuración previamente almacenado.
Al realizar la carga y comenzar la subida del archivo, se deberá de esperar un tiempo prudencial hasta que la configuración sea aceptada y el apartado Opciones del tema recargue automáticamente.
Al ser aceptada la configuración principal del tema, se recomienda encarecidamente verificar que las opciones denominadas Generación de archivos CSS estáticos y Habilitar editor clásico pertenecientes al apartado
Divi > Opciones del tema > Constructor > Avanzado
, se encuentren activas.
Es importante tomar en consideración que, la configuración principal del tema no incluye datos sensibles como el Nombre de usuario y la Clave API, por lo que no se podrán recibir automáticamente las actualizaciones que posea el tema padre Divi.
La estructura del tema se compone de cinco directorios principales, siendo éstos:
functions.php
dada su envergadura: manejo de breadcrumbs, opciones de personalización del tema a través del Personalizador de temas en WordPress y gestión de menús (ofreciendo la capacidad de contraer y expandir los nodos padres) en vista del extenso árbol de navegación que poseen ciertos sitios. Asimismo, incluye el template utilizado por WordPress al momento de visualizar una búsqueda sin resultados (no-results.php
).$ npm install
. Este directorio es ignorado a través del archivo .gitignore
.plugin-update-checker
empleada en la gestión de las actualizaciones automáticas para el Tema UCAB.Adicionalmente a los directorios antes descritos, se encuentran los archivos base requeridos por WordPress para la correcta construcción del tema, al igual que los archivos package.json
y package-lock.json
para poder realizar la instalación de las dependencias NPM requeridas por el tema.
En vista de las extensas personalizaciones que posee el Tema UCAB a nivel de estilos, y con el fin de poder mantener con mayor facilidad las mismas, se empleó el uso de SASS como preprocesador CSS para la generación de tres archivos principales, siendo éstos:
style.css
: archivo principal de estilos CSS. Es requerido por WordPress para poder reconocer correctamente al Tema UCAB como un tema hijo.assets/styles/css/admin.css
: archivo de estilos CSS encargado de añadir las reglas necesarias al Administrador de WordPress (back end).assets/styles/css/login.css
: archivo de estilos CSS encargado de añadir las reglas necesarias al formulario de inicio de sesión usado en WordPress.Estos tres archivos son los únicos que se ven afectados directamente al realizar el procesado de los archivos SASS.
Todos los archivos SASS utilizados por el tema se encuentran en el directorio assets/styles/sass
y se organizan de la siguiente forma:
_fonts.scss
: archivo SASS que posee las referencias a las fuentes locales empleadas por el Tema UCAB._layout.scss
y _modules.scss
: archivos SASS encargados de contener las referencias a la estructura del tema y módulos personalizados respectivamente._palette.scss
: archivo SASS que posee únicamente las variables referentes a los colores estipulados por la paleta UCAB 20-20 y colores estipulados para cada una de las marcas provisionales que conforman el Mundo UCAB._print.scss
: archivo SASS que posee únicamente las reglas utilizadas para la versión impresa del Tema UCAB.admin.scss
, login.scss
y style.scss
: archivos SASS principales a ser procesados para generar las versiones finales CSS.Es importante tomar en consideración que, todos los enlaces planteados a lo largo de los archivos SASS son relativos a la ubicación en la que estarán los archivos CSS procesados.
Para poder llevar a cabo el procesamiento de los archivos SASS a fin de generar los archivos CSS empleados por el Tema UCAB, se requiere utilizar el manejador de paquetes NPM, el cual viene por defecto al instalar Node.js.
Por medio de los archivos package.json
y package-lock.json
, NPM identifica cuáles son los paquetes requeridos por el Tema UCAB, los cuales deben de ser instalados ejecutando en primera instancia:
$ npm install
Al concluir la instalación de los paquetes de forma satisfactoria, se podrá hacer uso de los comandos de consola contemplados a través de NPM para el Tema UCAB, los cuales son:
$ npm run dev
: permite realizar la compilación de los archivos SASS a CSS incluyendo información de utilidad para poder hacer debug de posibles errores.$ npm run build
: permite realizar la compilación de los archivos SASS a CSS optimizándolos para un ambiente en producción.$ npm run watch
: permite generar una instancia de nodemon
para hacer seguimiento (watching) de los archivos SASS que son modificados y generar automáticamente su versión CSS procesada. Es útil únicamente en ambientes de desarrollo locales.El Tema UCAB se desarrolló con el fin de poder ser replicado en numerosas instancias WordPress, las cuales en muchas ocasiones, suelen ser configuradas como redes multisitio para facilitar la gestión de las mismas.
Las redes multisitio en WordPress ofrecen la capacidad de poder compartir temas y plugins entre los distintos sitios que conforman una red. No obstante, esto implica que, toda modificación que sea realizada afectará al conjunto de sitios que empleen un recurso específico.
Al ser empleada la configuración de redes multisito en WordPress, siempre debe de tomarse en consideración que, al hacerse cualquier cambio en los archivos SASS del Tema UCAB y procesar éstos para generar los respectivos archivos CSS, se estará afectando por igual a todos los sitios de la red que empleen el tema.
Un caso común de esta situación se presenta al momento de editar las variables $main-color
y $accent-color
del archivo assets/styles/sass/_palette.scss
para poder ajustar los colores requeridos específicamente por un sitio. Al realizar el cambio en las variables, se afectaría directamente el estilo principal del Tema UCAB.
Para subsanar esta problemática, solo deben de personalizarse los campos Color principal y Color de acento a través del Personalizador de temas en WordPress para el sitio que requiera un conjunto de colores distintos a los estipulados inicialmente en el estilo principal del Tema UCAB.
El Tema UCAB incorpora numerosas funcionalidades contempladas a través de distintos scripts sustentados mediante la librería jQuery, la cual viene por defecto incluida en WordPress.
Asimismo, en el Tema UCAB se configuró el uso de NPM como manejador de paquetes JavaScript para poder incluir ciertas dependencias que faciliten la creación de nuevas funcionalidades y el mantenimiento de las existentes.
Las dependencias NPM empleadas actualmente son:
Las dependencias NPM empleadas por el Tema UCAB están enfocadas únicamente en mejorar el proceso de desarrollo local, por lo que no cumplen algún próposito particular en ambientes de producción.
Los comandos de consola contemplados a través de NPM para el Tema UCAB son los siguientes:
$ npm run dev
: permite realizar la compilación de los archivos SASS a CSS incluyendo información de utilidad para poder hacer debug de posibles errores.$ npm run build
: permite realizar la compilación de los archivos SASS a CSS optimizándolos para un ambiente en producción.$ npm run watch
: permite generar una instancia de nodemon
para hacer seguimiento (watching) de los archivos SASS que son modificados y generar automáticamente su versión CSS procesada. Es útil únicamente en ambientes de desarrollo locales.Todos los archivos JavaScript utilizados por el tema se encuentran en el directorio assets/scripts
y se organizan de la siguiente forma:
Es importante acotar que, actualmente, el directorio ucab contempla los scripts de mayor relevancia para el funcionamiento del Tema UCAB, siendo estos los siguientes:
ucab.datatables.js
: contempla todas las opciones requeridas por el plugin para jQuery denominado DataTables al ser inicializado. Para mayor información, dirigirse al apartado Uso de tablas funcionales (DataTables).ucab.fullwidth.js
: ofrece la capacidad al módulo personalizado Carrusel de ancho completo (UCAB) de extender su altura a la correspondiente al viewport del navegador.ucab.header.js
: contempla el comportamiento que debe de poseer el encabezado del Tema UCAB al momento de requerirse el diseño para dispositivos móviles o al realizarse scroll durante la navegación.ucab.mobilemenu.js
: contempla el comportamiento de apertura y cierre del menú overlay al presionar el icono de búsqueda, o al presionar el botón de menú presente en el diseño para dispositivos móviles.ucab.noresults.js
: ofrece la capacidad a los templates del Tema UCAB no-results.php
y 404.php
de extender su altura a la correspondiente al viewport del navegador.ucab.pagelayout.js
: su ejecución se limita únicamente al Administrador de WordPress (back end) y permite definir el diseño (layout) de la página o entrada a ser usado por defecto.ucab.pagemenu.js
: contempla el comportamiento requerido por el widget Menú lateral UCAB al presionarse los botones de navegación por cada uno de los niveles del menú.ucab.preloading.js
y ucab.postloading.js
: contemplan la lógica involucrada en los scripts ucab.header.js
y ucab.fullwidth.js
sin hacer uso de la librería jQuery para mejorar la experiencia del usuario durante la carga inicial. Posteriormente, cuando la librería jQuery es cargada de forma satisfactoria, se registran los eventos requeridos para garantizar las funcionalidades provistas para el Tema UCAB.El plugin Módulos personalizados UCAB engloba todos los componentes funcionales que han sido desarrollados específicamente para suplir algún requerimiento o necesidad a nivel de contenido y de estructura para los múltiples sitios que conforman el Mundo UCAB.
El plugin Módulos personalizados UCAB existe como una solución independiente al Tema UCAB debido a los lineamientos estipulados por Elegant Themes en su documentación para desarrolladores. Para la creación de un módulo personalizado, se cuenta con un scaffolding presentado en forma de plugin el cual posee toda la estructura requerida para poder ser llevado a cabo un desarrollo local y posteriormente, generar el bundle necesario para su lanzamiento a producción.
Es importante tomar en consideración que este scaffolding permite el correcto funcionamiento de los módulos personalizados, ya que éstos se componen de dos grandes partes, una que responde al Administrador de WordPress (back end), y otra que responde al Constructor Divi (front end). Por tanto, es indispensable poseer conocimientos en los lenguajes PHP y JavaScript (haciendo uso específico de la librería React).
No obstante, a pesar de que el plugin Módulos personalizados UCAB es una solución independiente al Tema UCAB, requiere de este último para poder configurar correctamente los estilos base de cada módulo personalizado, al igual que el color principal y de acento a ser empleados para un sitio particular. Por tanto, los estilos SASS se encuentran actualmente en el Tema UCAB, específicamente en el directorio assets/styles/sass/modules
.
La estructura del plugin se compone de cinco directorios principales, siendo éstos:
modules
específicamente, se encuentran dispuestos todos los módulos personalizados, los cuales poseen su respectivo archivo PHP
y JSX
(React).plugin-update-checker
empleada en la gestión de las actualizaciones automáticas para el plugin.Adicionalmente a los directorios antes descritos, se encuentran los archivos base requeridos por WordPress para la correcta construcción del plugin (modules.php
y readme.txt
), al igual que los archivos package.json
y package-lock.json
para poder realizar la instalación de las dependencias NPM requeridas por el plugin.
Todo desarrollo a ser llevado a cabo para el plugin Módulos personalizados UCAB, debe de ser realizado en un ambiente de desarrollo local que cumpla con los requerimientos previamente estipulados. Asimismo, es de suma importancia poder cumplir con las siguientes pautas en orden:
wp-config.php
. Para ello, solo debe de añadirse la definición define('UCAB_DEBUG', true)
. Igualmente, se recomienda cambiar la definición del modo debug en el que estará funcionando WordPress a define('WP_DEBUG', true);
en el mismo archivo de configuración.
La definición
define('UCAB_DEBUG', true)
permitirá obviar el bundle generado para producción existente en el plugin Módulos personalizados UCAB, y empleará en contraposición, el generado constantemente por el servidor local de React.
$ npm start
, el cual se encargará de realizar toda la configuración requerida para funcionar en conjunto con WordPress, y recargar automáticamente la página sobre la que se esté trabajando a través del Constructor Divi (front end) en la medida que se realicen cambios sobre los archivos JSX
(React).Si al ser completadas las pautas anteriores, se aprecia a través del Constructor Divi (front end) un error como el siguiente al tratar de ser cargada la interfez gráfica de un módulo personalizado:
function(t){return r.a.createElement(f.a,C({rawContentProcesser:h.default.replaceCodeContentEntities},e.props))}
La causa principal radicaría en una falla del servidor local de React al momento de generar la interfaz gráfica del módulo. Habría que evaluar su correcto funcionamiento, o verificar si el módulo personalizado posee su respectivo archivo
JSX
, y adicionalmente, corroborar si este último está siendo bien importado a través del archivoincludes/modules/index.js
.
Puesto que la documentación para desarrolladores ofrecida por Elegant Themes se encuentra actualmente en crecimiento; a continuación, se presentan varias recomendaciones obtenidas a partir de la experiencia durante el desarrollo de los módulos personalizados:
JSX
y no pueden ser apreciados correctamente, posiblemente se requiera realizar una limpieza de los valores almacenados.PHP
inherente al módulo en desarrollo. No obstante, luego de ser añadido un nuevo campo de configuración, puede no ser visualizado correctamente al desplegar las opciones del módulo personalizado. Para solventar esta situación, estando en el Administrador de WordPress, se debe de seleccionar el panel Plugins
para proceder a desactivar y seguidamente, activar el plugin Módulos personalizados UCAB. Al realizar esta acción, se forzará a WordPress a leer nuevamente todos los archivos que constituyen el plugin, permitiendo que los campos añadidos puedan ser visualizados correctamente a través de las opciones del módulo.Los comandos de consola contemplados a través de NPM para el plugin Módulos personalizados UCAB son los siguientes:
$ npm start
: permite iniciar el servidor local de React a fin de generar constantemente un nuevo bundle por cada actualización que se realice sobre los archivos JSX
. Asimismo, recargará automáticamente la página sobre la que se esté trabajando a través del Constructor Divi (front end) por cada cambio que se realice.$ npm run build
: permite generar un nuevo bundle el cual sustituirá los archivos existentes en los directorios scripts
y styles
. El bundle generado estará optimizado para ambientes en producción.$ npm run zip
: ejecuta el comando de consola $ npm run build
para generar un bundle optimizado para ambientes en producción. Posteriormente, exporta el plugin en formato ZIP para poder ser instalado a través del Administrador de WordPress en cualquier ambiente que lo requiera.
Para hacer uso de este comando de consola, se debe de emplear en ambientes basados en SO Windows, un terminal con permisos de administrador para su correcto funcionamiento. En caso contrario, el proceso de compresión fallará.
$ npm run eject
: permite copiar todos los archivos de configuración y las dependencias transitivas abstraidas por React (Webpack, Babel, ESLint, entre otros), directamente en el plugin para obtener control absoluto al momento de ser generado un bundle.
Esta operación no puede ser deshecha luego de ser realizada. Por tanto, no se recomienda su uso a no ser que se conozca exactamente qué se debe de hacer.
El Personalizador de temas en WordPress cumple un papel sumamente importante al momento de configurar el Tema UCAB para una instancia WordPress particular, ya que permite definir opciones generales como colores, tipografías, opciones del encabezado, CSS adicional, entre otros.
El Tema UCAB permite realizar una configuración rápida de las opciones antes mencionadas por medio de un archivo en formato JSON, el cual contiene todas las definiciones comunes requeridas.
A continuación, se presenta la estructura JSON que debe de contemplar el archivo de configuración para el Tema UCAB. El color principal contemplado es el valor hexadecimal #40b4e5
, el cual puede ser reemplazado para poder cumplir con el requerimiento que posea el sitio específico:
{
"context": "et_divi_mods",
"data": {
"static_css_custom_css_safety_check_done": true,
"2_5_flush_rewrite_rules": "done",
"et_flush_rewrite_rules_library": "4.0.7",
"divi_previous_installed_version": "4.0.7",
"divi_latest_installed_version": "4.0.7",
"divi_skip_font_subset_force": true,
"divi_email_provider_credentials_migrated": true,
"divi_1_3_images": "checked",
"et_pb_layouts_updated": true,
"library_removed_legacy_layouts": true,
"divi_2_4_documentation_message": "triggered",
"et_pb_post_type_integration": {
"post": "on",
"page": "on",
"project": "on",
"location": "on",
"event": "on"
},
"et_pb_static_css_file": "off",
"et_pb_css_in_footer": "off",
"et_pb_product_tour_global": "off",
"et_enable_classic_editor": "on",
"product_tour_status": { "1": "off" },
"et_fb_pref_settings_bar_location": "bottom",
"et_fb_pref_builder_animation": "false",
"et_fb_pref_builder_display_modal_settings": "false",
"et_fb_pref_builder_enable_dummy_content": "true",
"et_fb_pref_event_mode": "hover",
"et_fb_pref_limited_view_mode": "wireframe",
"et_fb_pref_hide_disabled_modules": "false",
"et_fb_pref_history_intervals": 1,
"et_fb_pref_page_creation_flow": "default",
"et_fb_pref_quick_actions_always_start_with": "nothing",
"et_fb_pref_quick_actions_show_recent_queries": "off",
"et_fb_pref_quick_actions_recent_queries": "",
"et_fb_pref_quick_actions_recent_category": "",
"et_fb_pref_limited_modal_preference": "default",
"et_fb_pref_modal_snap_location": "false",
"et_fb_pref_modal_snap": "false",
"et_fb_pref_modal_fullscreen": "false",
"et_fb_pref_modal_dimension_width": 400,
"et_fb_pref_modal_dimension_height": 400,
"et_fb_pref_modal_position_x": 931,
"et_fb_pref_modal_position_y": 196,
"et_fb_pref_limited_toolbar_click": "false",
"et_fb_pref_limited_toolbar_desktop": "true",
"et_fb_pref_limited_toolbar_grid": "false",
"et_fb_pref_limited_toolbar_hover": "false",
"et_fb_pref_limited_toolbar_phone": "true",
"et_fb_pref_limited_toolbar_tablet": "true",
"et_fb_pref_limited_toolbar_wireframe": "true",
"et_fb_pref_limited_toolbar_zoom": "true",
"heading_font": "Fedra Sans Std Bold",
"body_font": "Open Sans",
"accent_color": "#40b4e5",
"primary_nav_font": "Source Sans Pro",
"footer_widget_text_color": "#ffffff",
"footer_widget_link_color": "#ffffff",
"et_fb_pref_view_mode": "desktop",
"et_fb_pref_modal_preference": "default",
"et_fb_pref_toolbar_click": "false",
"et_fb_pref_toolbar_desktop": "true",
"et_fb_pref_toolbar_grid": "true",
"et_fb_pref_toolbar_hover": "false",
"et_fb_pref_toolbar_phone": "true",
"et_fb_pref_toolbar_tablet": "true",
"et_fb_pref_toolbar_wireframe": "true",
"et_fb_pref_toolbar_zoom": "true",
"link_color": "#40b4e5",
"wp_custom_css": "",
"divi_bfb_optin_modal_shown": "yes",
"builder_custom_defaults": [],
"customizer_settings_migrated_flag": true,
"builder_custom_defaults_unmigrated": false,
"body_font_size": 16,
"et_pb_clear_templates_cache": true,
"show_search_icon": false,
"fixed_secondary_nav_bg": "#40b4e5",
"fixed_menu_link_active": "#40b4e5",
"footer_columns": "1",
"show_footer_social_icons": false,
"all_buttons_text_color": "#40b4e5",
"all_buttons_border_color": "#40b4e5",
"all_buttons_icon": "no",
"all_buttons_text_color_hover": "#fefefe",
"all_buttons_bg_color_hover": "#40b4e5",
"all_buttons_border_color_hover": "#40b4e5",
"all_buttons_border_radius_hover": 3,
"post_meta_font_size": "14",
"post_meta_height": "1",
"post_meta_spacing": "0",
"post_meta_style": "",
"post_header_font_size": "30",
"post_header_height": "1",
"post_header_spacing": "0",
"post_header_style": "",
"boxed_layout": "",
"content_width": "1080",
"gutter_width": "3",
"use_sidebar_width": "",
"sidebar_width": "21",
"section_padding": "4",
"phone_section_height": "50",
"tablet_section_height": "50",
"row_padding": "2",
"phone_row_height": "30",
"tablet_row_height": "30",
"cover_background": "on",
"body_font_height": "1.7",
"phone_body_font_size": "14",
"tablet_body_font_size": 16,
"body_header_size": "30",
"body_header_spacing": "0",
"body_header_height": "1",
"body_header_style": "",
"phone_header_font_size": "30",
"tablet_header_font_size": "30",
"font_color": "#666666",
"header_color": "#666666",
"color_schemes": "none",
"header_style": "left",
"vertical_nav": "",
"vertical_nav_orientation": "left",
"hide_nav": "",
"show_header_social_icons": "",
"slide_nav_show_top_bar": "on",
"slide_nav_width": "320",
"slide_nav_font_size": "14",
"slide_nav_top_font_size": "14",
"fullscreen_nav_font_size": "30",
"fullscreen_nav_top_font_size": "18",
"slide_nav_font_spacing": "0",
"slide_nav_font": "none",
"slide_nav_font_style": "",
"slide_nav_bg": "#40b4e5",
"slide_nav_links_color": "#ffffff",
"slide_nav_links_color_active": "#ffffff",
"slide_nav_top_color": "rgba(255,255,255,0.6)",
"slide_nav_search": "rgba(255,255,255,0.6)",
"slide_nav_search_bg": "rgba(0,0,0,0.2)",
"nav_fullwidth": "",
"hide_primary_logo": "",
"menu_height": "66",
"logo_height": "54",
"menu_margin_top": "0",
"primary_nav_font_size": "14",
"primary_nav_font_spacing": "0",
"primary_nav_font_style": "",
"secondary_nav_font_size": "12",
"secondary_nav_fullwidth": "",
"secondary_nav_font_spacing": "0",
"secondary_nav_font": "none",
"secondary_nav_font_style": "",
"menu_link": "rgba(0,0,0,0.6)",
"hide_mobile_logo": "",
"mobile_menu_link": "rgba(0,0,0,0.6)",
"menu_link_active": "#40b4e5",
"primary_nav_bg": "#ffffff",
"primary_nav_dropdown_bg": "#ffffff",
"primary_nav_dropdown_line_color": "#40b4e5",
"primary_nav_dropdown_link_color": "rgba(0,0,0,0.7)",
"primary_nav_dropdown_animation": "fade",
"mobile_primary_nav_bg": "#ffffff",
"secondary_nav_bg": "#40b4e5",
"secondary_nav_text_color_new": "#ffffff",
"secondary_nav_dropdown_bg": "#40b4e5",
"secondary_nav_dropdown_link_color": "#ffffff",
"secondary_nav_dropdown_animation": "fade",
"primary_nav_text_color": "dark",
"secondary_nav_text_color": "light",
"hide_fixed_logo": "",
"minimized_menu_height": "40",
"fixed_primary_nav_font_size": "14",
"fixed_primary_nav_bg": "#ffffff",
"fixed_menu_link": "rgba(0,0,0,0.6)",
"fixed_secondary_menu_link": "#ffffff",
"phone_number": "",
"header_email": "",
"footer_bg": "#222222",
"widget_header_font_size": 18,
"widget_header_font_style": false,
"widget_body_font_size": 16,
"widget_body_line_height": "1.7",
"widget_body_font_style": false,
"footer_widget_header_color": "#40b4e5",
"footer_widget_bullet_color": "#40b4e5",
"footer_menu_background_color": "rgba(255,255,255,0.05)",
"footer_menu_text_color": "#bbbbbb",
"footer_menu_active_link_color": "#40b4e5",
"footer_menu_letter_spacing": "0",
"footer_menu_font_style": false,
"footer_menu_font_size": "14",
"bottom_bar_background_color": "rgba(0,0,0,0.32)",
"bottom_bar_text_color": "#666666",
"bottom_bar_font_style": false,
"bottom_bar_font_size": "14",
"bottom_bar_social_icon_size": "24",
"bottom_bar_social_icon_color": "#666666",
"disable_custom_footer_credits": "",
"custom_footer_credits": "",
"all_buttons_font_size": "20",
"all_buttons_bg_color": "rgba(0,0,0,0)",
"all_buttons_border_width": "2",
"all_buttons_border_radius": "3",
"all_buttons_spacing": "0",
"all_buttons_font_style": "",
"all_buttons_font": "none",
"all_buttons_selected_icon": "5",
"all_buttons_icon_color": "#ffffff",
"all_buttons_icon_placement": "right",
"all_buttons_icon_hover": "yes",
"all_buttons_spacing_hover": false
},
"defaults": "",
"images": []
}
Estas opciones deben de ser copiadas y almacenadas en un archivo en formato JSON para luego poder ser importadas en el sitio específico. Para importar el archivo de configuración, se debe de ir al Personalizador de temas en WordPress y presionar el botón denominado Importar y exportar, ubicado en la parte superior del panel de configuración.
Seguidamente, aparecerá una pequeña ventana modal que nos ofrecerá la opción de Exportar o Importar la configuración. Al seleccionar el apartado Importar, se podrá apreciar un control de carga de archivos a través del cual se realizará la carga del archivo de configuración previamente almacenado.
Al realizar la carga y comenzar la subida del archivo, se deberá de esperar un tiempo prudencial hasta que la configuración sea aceptada y el Personalizador de temas en WordPress recargue automáticamente.
Los cambios pueden no ser apreciados instantáneamente debido a que el Tema UCAB hereda estas opciones de configuración a través del tema padre Divi, el cual genera archivos estáticos CSS que pueden no ser actualizados al culminar el proceso de configuración.
Para regenerar los archivos estáticos CSS, se debe de acceder al Administrador de WordPress, específicamente a la sección
Divi > Opciones del tema > Constructor > Avanzado > Generación de archivos CSS estáticos
y limpiar por medio del botón ubicado en dicho apartado, los archivos CSS estáticos. Posteriormente, antes de visualizar nuevamente el sitio, se recomienda realizar una limpieza sobre la caché y localStorage del navegador utilizado.
La configuración inicial permite definir numerosos valores requeridos por el Tema UCAB los cuales son inherentes al tema padre Divi. No obstante, existe un apartado específico denominado Opciones UCAB el cual debe de ser ajustado manualmente.
Las opciones de configuración contempladas para este apartado son las siguientes:
En caso de no existir en el apartado
Colores del tema > Estilo de cabecera
un estilo predefinido acorde con el requerido, se pueden emplear las opciones contempladas en el apartadoColores del menú
para personalizar el encabezado en su totalidad, ya que éstas sobrescribirán cualquier opción contemplada previamente comoEstilo de cabecera
, sin importar la elección que sea realizada.
En cada instancia WordPress, se emplean los siguientes plugins en su versión más reciente para añadir funcionalidades necesarias para la gestión y mantenimiento de las mismas:
No obstante, si una instancia WordPress particular lo requiere, puede hacer uso de otros plugins adicionales a los listados anteriormente.
Actualmente, el Tema UCAB emplea los siguientes widgets ajustados específicamente a los requisitos presentes:
Permite desplegar un menú de navegación lateral que ofrece la capacidad de recorrer múltiples niveles y posicionarse, por defecto, en el nivel al que pertenece la página visualizada siempre y cuando haya sido incluida en el menú a ser listado por el widget.
Para emplear el widget, se deben de cumplir los siguientes pasos:
Crear un menú que contenga toda la estructura jerárquica del sitio. Dicho menú debe de poseer un nodo inicial que englobe a todas las páginas requeridas. A continuación, se presenta una estructura jerárquica a fin de ejemplificar la disposición requerida en el menú a ser utilizado por el widget:
Nodo inicial
├── Página 1
│ ├── Página 1.1
│ │ ├── Página 1.1.1
│ │ └── Página 1.1.2
│ └── Página 1.2
├── Página 2
└── Página 3
Es importante considerar que, haciendo uso de este widget, se podría crear un único menú que contenga el árbol de navegación completo de un sitio, por lo que todas las páginas que lo requieran, solo deberían de hacer referencia al mismo menú, facilitando a largo plazo el mantenimiento del mismo.
Requiere del plugin Events Manager para su funcionamiento, y permite listar todos los eventos creados a través del Administrador de WordPress.
Para emplear el widget, se deben de cumplir los siguientes pasos:
Definir la estructura HTML a ser empleada como elemento de la lista haciendo uso del siguiente snippet:
<li class="event">
<div class="date">
<time datetime="#Y-#m-#d">
<span class="month">#M</span>
<span class="day">#d</span>
</time>
</div>
<div class="info">
<h2 class="title">#_EVENTLINK</h2>
<div class="desc-wrapper">
<i class="far fa-calendar" aria-hidden="true"></i>
<p class="desc">#_EVENTDATES</p>
</div>
<div class="desc-wrapper">
<i class="far fa-clock" aria-hidden="true"></i>
<p class="desc">#_EVENTTIMES</p>
</div>
</div>
<div style="clear: both;"></div>
</li>
Definir la estructura HTML a ser empleada al momento de no haber eventos a ser listados haciendo uso del siguiente snippet:
<li>No hay eventos</li>
La Universidad Católica Andrés Bello en aras de poder estandarizar los procesos inherentes a la creación y mantenimiento de los distintos espacios a nivel web que conforman el Mundo UCAB, define una serie de pautas a seguir las cuales son descritas con exactitud en el Manual de lineamientos gráficos UCAB.
No obstante, a continuación se presentan los lineamientos gráficos más importantes a ser tomados en consideración:
Actualmente, existen tres niveles distintos de organización para los sitios que conforman el Mundo UCAB, los cuales brindan una serie de pautas específicas que deberán de ser seguidas a plenitud.
Es sumamente importante tomar en consideración esta primera normativa a modo de conocer las directrices a ser seguidas para la creación o mantenimiento de un sitio particular.
Para mayor información, referirse al Manual de lineamientos gráficos UCAB.
Los sitios que conforman el Mundo UCAB varían primordialmente por el color principal y de acento designados, a no ser que pertenezcan a la la clasificación de sitios de tercer nivel (Para mayor información, referirse al Manual de lineamientos gráficos UCAB).
Asimismo, la tipografía empleada posee un papel fundamental en la caracterización de los sitios, haciendo que éstos se puedan relacionar entre sí a pesar de no compartir ciertamente la misma información, o no se refieran a una misma dependencia u organización.
Para definir todos estos valores requeridos, en el apartado Personalizador de temas en WordPress se detallan todos los pasos a seguir para configurar una instancia WordPress que emplee el Tema UCAB.
En última instancia, es importante acotar cómo debe de ser empleado el diseño de las página según el nivel al que correspondan en la arquitectura de información definida.
Es la página inicial (home) del sitio y solamente emplea el módulo personalizado denominado Carrusel de ancho completo (UCAB) para presentar las noticias más relevantes, o los contenidos más destacados o de importancia para el usuario final.
El alto de esta página estará acotado al viewport del navegador si y solo si es posible según la resolución del dispositivo con el cual se esté visualizando.
El diseño empleado para esta página es el denominado ancho completo.
Corresponde al esquema que debe de ser implementado en toda página que pertenezca al primer nivel de nevagación en la arquitectura de información, es decir: https://www.nombrededominio.com/primer-nivel/
.
Permite condensar toda la información contenida en los siguientes niveles de navegación, agrupando el contenido destacado o de interés para que pueda ser accedido de forma rápida por el usuario final.
Puede emplearse una imagen de encabezado, la cual siempre deberá de ocupar el ancho completo del viewport del navegador. Seguidamente, se hará uso de alguno de los módulos encargados de poder plantear un título para la página.
En última instancia, se presentará todo el contenido que requiera la página incluyendo enlaces, vídeos, imágenes, entre otros; siempre haciendo uso de los módulos base y módulos personalizados existente en el Constructor Divi.
El diseño empleado para esta página es el denominado ancho completo.
Corresponde al esquema que debe de ser implementado en toda página que pertenezca al segundo nivel de nevagación en la arquitectura de información, es decir: https://www.nombrededominio.com/primer-nivel/segundo-nivel/
.
Los próximos niveles de navegación implementarán obligatorialmente este esquema de diseño.
Este esquema de diseño contempla dos áreas bien delimitadas, las cuales son:
Permite visualizar el nivel de navegación al que pertenece la página desplegado. Asimismo, ofrece la capacidad de enlazar con los niveles superiores para facilitar la navegación.
Empleada principalmente para desplegar el widget denominado Menú lateral UCAB. Facilita la navegación a través de los distintos niveles contemplados en la arquitectura de información.
Contempla todo el contenido que requiere la página incluyendo enlaces, vídeos, imágenes, entre otros; siempre haciendo uso de los módulos base y módulos personalizados existente en el Constructor Divi.
El diseño empleado para esta página es el denominado barra lateral izquierda.
Actualmente, tanto el Tema UCAB como el plugin Módulos personalizados UCAB mantienen versiones que fungen como guía para controlar los cambios realizados y la incorporación de nuevas funcionalidades en razón del tiempo.
Asimismo, dichas soluciones poseen la capacidad de adquirir actualizaciones automáticamente en lo que una nueva versión es generada, mejorando significativamente los procesos de mantenimiento y adquisición de mejoras.
Antes de generarse una nueva versión, se debe de conocer el funcionamiento actual del repositorio a fin de entender el flujo empleado para la creación de nuevas funcionalidades o correcciones que hayan que ser realizadas. El branch master
solo poseerá código completamente funcional y probado, ya que a partir de él serán construidos los nuevos releases.
Los branches development
y documentation
serán empleados para desarrollar nuevas funcionalidades y documentar todos los cambios realizados respectivamente. Siempre que se disponga a realizar algún desarrollo, es importante actualizar ambos branches en relación con el branch master
a fin de partir de una versión estable.
Si la funcionalidad a desarrollar es extensa, puede hacerse la creación de un branch con un nombre conciso que lo identifique, el cual partirá desde el branch development
. Posteriormente, al ser culminado el desarrollo requerido, se creará un pull request que permitirá integrar todos los cambios al branch del cual se partió, permitiendo así canalizar todo hasta el branch master
.
Consecuentemente, todos los cambios realizados estarán disponibles en el branch master
, y así se podrá a través la interfaz web de GitHub, generar un nuevo release el cual deberá de ser, en número de versión, mayor al último release existente en el repositorio. A continuación, se listan todos los archivos que deben de ser modificadas antes de poderse generar correctamente una nueva versión:
Tema UCAB | Módulos personalizados UCAB |
---|---|
package.json |
package.json |
package-lock.json |
package-lock.json |
functions.php (Metadatos iniciales) |
modules.php (Metadatos iniciales) |
assets/styles/sass/style.scss (Metadatos iniciales) |
includes/Modules.php (específicamente: public $version ) |
docs/changelog.md (Añadir cambios realizados) |
readme.txt (Añadir cambios realizados) |
Posteriormente, es importante ejecutar el comando de consola $ npm run build
en cualquiera de las soluciones en las que se esté trabajando antes de realizar commit y push, para así asentar correctamente todos los cambios necesarios referentes a la edición de la versión.
Al realizarse la creación de un nuevo release, habrá que esperar un lapso de cinco minutos para poder apreciar en los ambientes que empleen el Tema UCAB y el plugin Módulos personalizados UCAB, su respectiva actualización.
Para poder realizar el cambio de la imagen en la cabecera del sitio requerido, debe de tomarse en consideración que son necesarias dos versiones de la misma, las cuales responderán a la imagen original y a una versión simplificada comúnmente en color blanco (empleada para la cabecera en su versión reducida).
La proporción de la imagen debe de ser rectangular, manteniendo un mayor ancho que alto debido al espacio en donde será presentada, y debe de ser usada estrictamente en formato SVG para poder escalar correctamente y mantener una buena definición sin importar la densidad de pixeles del dispositivo a través del cual se visualice el sitio.
Posteriormente, ambas versiones previamente mencionadas deben de ser convertidas a su equivalente en Base64, para así poder ser incluidas posteriormente a través del Personalizador de temas en WordPress haciendo uso de un pequeño snippet de código CSS.
Para realizar la conversión de las imágenes SVG a su equivalente Base64, se puede emplear la herramienta ofrecida por RapidTables y obtener el string <encoded_string>
a ser sustituido en el código presentado a continuación, el cual será añadido en el apartado Personalizador de temas > CSS adicional
del sitio requerido:
/* Imagen de marca en su versión completa */
.ucab-header .ucab-brand-bar .home-link .brand-logo {
background: url("data:image/svg+xml;base64,<encoded_string>");
background-repeat: no-repeat;
background-size: contain;
background-position: center;
}
/* Imagen de marca en su versión simplificada */
.shrink .ucab-header .ucab-brand-bar .home-link .brand-logo {
background: url("data:image/svg+xml;base64,<encoded_string>");
background-repeat: no-repeat;
background-size: contain;
background-position: center;
}
En última instancia, se guardarán los cambios y se evaluará si la imagen se ajusta de forma satisfactoria en el espacio designado para la misma. En caso contrario, se puede hacer uso de las reglas CSS width
, height
y transform
a fin de conseguir un mejor resultado.
Para hacer uso de las tablas funcionales (DataTables) que ofrecen la capacidad de buscar y filtrar información, se debe de emplear la estructura HTML planteada a continuación:
<table class="ucab-datatables" style="width: 100%;">
<thead>
<tr>
<th>...</th>
</tr>
</thead>
<tbody>
<tr>
<td>...</td>
</tr>
</tbody>
</table>
Esta estructura debe de ser planteada a través de la vista HTML existente en el editor de texto enriquecido ofrecido por WordPress para las páginas o entradas.
Adicionalmente, se permite el uso de tablas funcionales con filas agrupadas (Row grouping) a fin de presentar grupos de datos relacionados entre sí. Es importante tomar en consideración que las filas estarán agrupadas por el valor estipulado en la primera columna de cada una de éstas.
<table class="ucab-grouped-datatables" style="width: 100%;">
<thead>
<tr>
<th>...</th>
</tr>
</thead>
<tbody>
<tr>
<td>...</td>
</tr>
</tbody>
</table>
Esta estructura debe de ser planteada a través de la vista HTML existente en el editor de texto enriquecido ofrecido por WordPress para las páginas o entradas.
Se ha presentado en ciertas ocasiones, la necesidad de emplear los lineamientos gráficos estipulados por el Tema UCAB sin hacer uso del mismo. La razón de dicho requerimiento puede radicar en el querer eliminar la cabecera (header) y pie de página (footer) personalizados para su uso a lo largo de las múltiples instancias WordPress. Asimismo, puede ser necesaria la definición de una nueva estructura de diseño (layout) para las distintas páginas de un sitio, las cuales posiblemente no pueden ser satisfechas a plenitud por el Tema UCAB.
En vista de este posible escenario, se recomienda la creación de un tema hijo para WordPress a partir del Tema UCAB. Es importante acotar que el Tema UCAB en sí es un tema hijo que depende del tema principal Divi, por consiguiente, la forma más sencilla de realizar dicha creación es a través del cambio del Text Domain del Tema UCAB y de sus metadatos existentes en las primeras líneas del archivo de estilos principal del tema (style.css
).
/*
Theme Name: UCAB
Theme URI: https://uwucab.github.io/ucab-theme/
Description: Tema UCAB para las múltiples instancias WordPress
Author: Mermelon Design
Author URI: http://www.mermelonde.com.ve
Template: Divi
Version: 2.1.0
Text Domain: ucab
Tags: one-column, two-columns, right-sidebar, flexible-header, accessibility-ready, custom-colors, custom-header, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready
*/
Si se planea emplear SASS como preprocesador CSS, el cambio puede realizarse directamente a través del archivo SASS principal localizado en
assets/styles/sass/style.scss
, y posteriormente, se utilizaría el comando de consola$ npm run build
para regenerar todos los estilos CSS empleados por el tema.
Posteriormente, se recomienda remover la librería plugin-update-checker
a fin de no recibir más actualizaciones automáticas pertenecientes al Tema UCAB, y evitar que las personalizaciones realizadas sobre el nuevo tema hijo se vean afectadas o perdidas por una actualización realizada por error.
Para su remoción, se debe de eliminar el siguiente código localizado en el archivo functions.php
:
/**
* Get updates from GitHub repo for UCAB theme.
*
* @since 1.2.0
*/
require 'updates/plugin-update-checker.php';
$updater = Puc_v4_Factory::buildUpdateChecker(
'https://github.com/uwucab/ucab-theme',
__FILE__,
'ucab'
);
// Access token for private repo
$updater->setAuthentication('<secret_access_token>');
// Branch that contains stable releases
$updater->setBranch('master');
// Additional data for custom details_url link
$updater->addResultFilter(function($themeInfo, $httpResponse = null) {
$themeInfo->details_url = 'https://uwucab.github.io/ucab-theme/changelog';
return $themeInfo;
});
Asimismo, luego de completar el proceso anterior, se puede remover el directorio updates
a fin de eliminar la librería empleada para la gestión de las actualizaciones automáticas del Tema UCAB.