Primeiros pasos de rediseño usando Bootstrap.

This commit is contained in:
Laegnur 2022-12-06 19:51:39 +01:00
parent a42d9f340c
commit ec7b62854f
62 changed files with 58908 additions and 15 deletions

File diff suppressed because one or more lines are too long

69
site/templates/atopar.php Normal file
View file

@ -0,0 +1,69 @@
<?php namespace ProcessWire;
$menu = '';
$contido = '';
$mantemento = $inicio->mantemento;
if($mantemento && !$user->isLoggedin())
{
$session->redirect($inicio->url);
}
else
{
$atopar = $sanitizer->text($input->get('q'));
$contido .= '<article id="' . $page->name . '">' . "\n";
$contido .= '<h2 class="bloque"><i class="icon-search"></i> ';
$contido .= $atopar ? $page->title . ': ' . $atopar : $page->title;
$contido .= '</h2>' . "\n";
if($atopar)
{
$input->whitelist('q', $atopar);
$atopar = $sanitizer->selectorValue($atopar);
$selector = "title|seccions.artigo~=$atopar, limit=50";
if($user->isLoggedin()) $selector .= ", has_parent!=2";
$matches = $pages->find($selector);
$cnt = $matches->count;
if($cnt)
{
$contido .= '<h3>Resultados para: ' . $atopar . '</h3>' . "\n";
$contido .= '<p>' . sprintf(_n(_x('Atopouse %d páxina', 'Found 1 page'),
_x('Atopáronse %d páxinas', 'Found multiple pages'), $cnt), $cnt) . '</p>' . "\n";
$contido .= '<section>' . "\n";
$contido .= '<h4 class="accesibilidade-oculto">' . _x("Resultados", "Search results") . '</h4>' . "\n";
$contido .= '<ul class="lista">'."\n";
foreach($matches as $paxina)
{
$contido .= '<li class="info">' . "\n";
$contido .= '<a href="' . $paxina->url . '"><i class="icon-play"></i> ' . $paxina->title . '</a>' . "\n";
$contido .= '</li>' . "\n";
}
$contido .= '</ul>'."\n";
$contido .= '</section>';
}
else
{
$contido .= '<h3>' . _x('Mapa do sitio', 'Sitemap') . '</h3>' . "\n";
$contido .= '<p>' . _x('Sentímolo, non se atoparon resultados', 'Sorry, no results were found.') . '</p>' . "\n";
$contido .= '<section>' . "\n";
$contido .= '<h4 class="accesibilidade-oculto">' . _x('Mapa do sitio', 'Sitemap') . '</h4>' . "\n";
$contido .= renderMapaDoSitio($inicio, 3, 'mapa-sitio');
$contido .= '</section>';
}
}
else
{
$contido .= '<h3>' . _x('Mapa do sitio', 'Sitemap') . '</h3>' . "\n";
$contido .= '<p>' . _x('Sentímolo, non se atoparon resultados', 'Sorry, no results were found.') . '</p>' . "\n";
$contido .= '<section>' . "\n";
$contido .= '<h4 class="accesibilidade-oculto">' . _x('Mapa do sitio', 'Sitemap') . '</h4>' . "\n";
$contido .= renderMapaDoSitio($inicio, 3, 'mapa-sitio');
$contido .= '</section>';
}
$contido .= '</article>' . "\n";
}

View file

@ -0,0 +1,14 @@
<?php namespace ProcessWire; ?>
<?php include('./layout/partial/bs_nav.php'); ?>
<?php include('./layout/partial/bs_head.php'); ?>
<?php include('./layout/partial/bs_foot.php'); ?>
<article id="inicio" class="container" pw-append="contido">
<div class="contedor">
<h2 class="visually-hidden"><?php echo ucfirst($inicio->title); ?></h2>
<?php if($configuracion['mantemento']['activo'] && !$user->isLoggedin()): ?>
<?php echo renderTextoMantemento($configuracion['mantemento']['titular'], $configuracion['mantemento']['artigo'], $configuracion['mantemento']['imaxe']) ?>
<?php else: ?>
<?php echo getSeccions($inicio->seccions); ?>
<?php endif; ?>
</div>
</article>

View file

@ -0,0 +1,45 @@
img
{
width: 100%;
}
figure img
{
display: block;
width: 100%;
height: auto;
object-fit: cover;
background-color: rgb(var(--cor_60));
}
.form-floating > .form-control,
.form-floating > .form-control-plaintext,
.form-floating > .form-select
{
height: calc(2.25rem + 2px);
line-height: 1.25;
}
.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-control-plaintext ~ label,
.form-floating > .form-select ~ label
{
height: unset;
width: unset;
padding: 0 !important;
background-color: #fff;
opacity: unset;
transform: scale(0.85) translateY(-0.8rem) translateX(0.15rem);
}
.text-bg-primary
{
background-color: rgb(var(--cor_30)) !important;
}

View file

@ -2,7 +2,7 @@
* @FONTS
* =============================================================================
*
* fonts.css v0.1.13 | GNU GPL License |
* fonts.css v0.1.14 | GNU GPL License |
*
*/
@ -90,13 +90,13 @@
@font-face
{
font-family: 'icomoon';
src: url('../fonts/icomoon_Regular.eot?srs48a'); /* 1 */
src: url('../fonts/icomoon_Regular.eot?srs48a#iefix') format('embedded-opentype'), /* 2 */
url('../fonts/icomoon_Regular.woff2?srs48a') format('woff2'), /* 3 */
url('../fonts/icomoon_Regular.woff?srs48a') format('woff'), /* 4 */
url('../fonts/icomoon_Regular.otf?srs48a') format('opentype'), /* 5 */
url('../fonts/icomoon_Regular.ttf?srs48a') format('truetype'), /* 5 */
url('../fonts/icomoon_Regular.svg?srs48a#icomoon') format('svg'); /* 6 */
src: url('../fonts/icomoon_Regular.eot?gy5gb6'); /* 1 */
src: url('../fonts/icomoon_Regular.eot?gy5gb6#iefix') format('embedded-opentype'), /* 2 */
url('../fonts/icomoon_Regular.woff2?gy5gb6') format('woff2'), /* 3 */
url('../fonts/icomoon_Regular.woff?gy5gb6') format('woff'), /* 4 */
url('../fonts/icomoon_Regular.otf?gy5gb6') format('opentype'), /* 5 */
url('../fonts/icomoon_Regular.ttf?gy5gb6') format('truetype'), /* 5 */
url('../fonts/icomoon_Regular.svg?gy5gb6#icomoon') format('svg'); /* 6 */
font-display: block;
font-style: normal;
font-weight: normal;
@ -212,4 +212,14 @@
.icon-x-circle:before
{
content: "\e912";
}
.icon-facebook:before
{
content: "\e913";
}
.icon-instagram:before
{
content: "\e914";
}

View file

@ -2,7 +2,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata>
Created by FontForge 20201107 at Sun Oct 23 17:42:08 2022
Created by FontForge 20201107 at Tue Dec 6 18:07:59 2022
By Unknown
</metadata>
<defs>
@ -109,5 +109,15 @@ d="M981 427q0 48 -9 94q-10 46 -27.5 88t-43.5 80q-25 38 -57 70q-32 31 -70 57q-37
q25 -37 57 -69t70 -57q37 -26 79 -44t88 -27q46 -10 95 -10t95 10q46 9 88 27t79 44q38 25 70 57t57 69q26 38 43.5 80t27.5 88q9 46 9 95zM896 427q0 -80 -30 -150t-82 -122q-53 -52 -122.5 -82t-149.5 -30t-149.5 30t-122.5 82q-52 52 -82 122t-30 150q0 79 30 149t82 122
q53 52 122.5 82.5t149.5 30.5t149.5 -30.5t122.5 -82.5q52 -52 82 -122t30 -149v0zM354 525l98 -98l-98 -98q-13 -13 -13 -30.5t13 -29.5q12 -13 30 -13t30 13l98 97l98 -97q12 -13 30 -13t30 13q13 12 13 29.5t-13 30.5l-98 98l98 98q13 12 13 29.5t-13 30.5q-12 12 -30 12
t-30 -12l-98 -98l-98 98q-12 12 -30 12t-30 -12q-13 -13 -13 -30.5t13 -29.5z" />
<glyph glyph-name="uniE913" unicode="&#xe913;"
d="M725 811v-86h-85q-18 0 -33.5 -6.5t-26.5 -18.5q-12 -11 -18.5 -26.5t-6.5 -33.5v-128q0 -18 12.5 -30.5t29.5 -12.5h116l-21 -85h-95q-17 0 -29.5 -12.5t-12.5 -30.5v-298h-86v298q0 18 -12.5 30.5t-29.5 12.5h-86v85h86q17 0 29.5 12.5t12.5 30.5v128q0 35 13.5 66
t36.5 55q24 23 55 36.5t66 13.5h85zM768 896h-128q-53 0 -99.5 -20t-81.5 -55t-55 -81.5t-20 -99.5v-85h-85q-18 0 -30.5 -12.5t-12.5 -30.5v-171q0 -17 12.5 -29.5t30.5 -12.5h85v-299q0 -18 12.5 -30.5t30.5 -12.5h170q18 0 30.5 12.5t12.5 30.5v299h85q15 0 26.5 9
t15.5 23l42 171q5 17 -4.5 32t-26.5 19q-2 1 -5 1.5t-5 0.5h-128v85h128q18 0 30.5 12.5t12.5 30.5v170q0 18 -12.5 30.5t-30.5 12.5v0z" />
<glyph glyph-name="uniE914" unicode="&#xe914;"
d="M299 896q-53 0 -100 -20t-81 -55q-35 -35 -55 -81.5t-20 -99.5v-427q0 -53 20 -99.5t55 -81.5q34 -34 81 -54.5t100 -20.5h426q53 0 100 20.5t81 54.5q35 35 55 81.5t20 99.5v427q0 53 -20 99.5t-55 81.5q-34 35 -81 55t-100 20h-426zM299 811h426q36 0 67 -13.5
t54 -36.5q23 -24 36.5 -55t13.5 -66v-427q0 -35 -13.5 -66t-36.5 -54q-23 -24 -54 -37t-67 -13h-426q-36 0 -67 13t-54 37q-23 23 -36.5 54t-13.5 66v427q0 35 13.5 66t36.5 55q23 23 54 36.5t67 13.5v0zM725 460q-5 31 -18 59t-33 50q-24 28 -57 46.5t-71 23.5q-15 3 -31 3
t-32 -2q-44 -7 -80 -29.5t-61 -54.5q-24 -33 -35 -74t-4 -85q6 -43 28.5 -79t55.5 -61q33 -24 73.5 -35t84.5 -4q44 6 80 28.5t60 54.5q24 33 35 74t5 85v0zM640 447q4 -26 -2.5 -50.5t-20.5 -44.5q-15 -20 -36.5 -33t-47.5 -17q-27 -4 -51.5 2.5t-43.5 21.5
q-20 14 -33.5 36t-17.5 48t2.5 50.5t21.5 44.5t36.5 33t47.5 17q10 2 19.5 1.5t17.5 -1.5q24 -3 43.5 -14t34.5 -28q12 -14 20 -30.5t11 -35.5h-1zM747 619q17 0 29.5 12.5t12.5 29.5q0 18 -12.5 30.5t-29.5 12.5q-18 0 -30.5 -12.5t-12.5 -30.5q0 -17 12.5 -29.5
t30.5 -12.5z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,66 @@
<?php namespace ProcessWire;
if($input->get->logout == true)
{
$session->logout();
$session->redirect($inicio->url);
}
?>
<!DOCTYPE html>
<html lang="<?php echo _x('en', 'HTML language code'); ?>">
<head>
<title><?php echo $titulo; ?></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<?php if($configuracion['sitio_descripcion']): ?>
<meta name="description" content="<?php echo $configuracion['sitio_nome'] . ' ' . $configuracion['sitio_descripcion']; ?>" />
<?php endif; ?>
<meta name="msapplication-TileColor" content="#00aba9">
<meta name="msapplication-config" content="<?php echo $config->urls->templates; ?>images/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<link rel="apple-touch-icon" sizes="180x180" href="<?php echo $config->urls->templates; ?>images/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="<?php echo $config->urls->templates; ?>images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="<?php echo $config->urls->templates; ?>images/favicon-16x16.png">
<link rel="manifest" href="<?php echo $config->urls->templates; ?>images/site.webmanifest">
<link rel="mask-icon" href="<?php echo $config->urls->templates; ?>images/safari-pinned-tab.svg" color="#00a099">
<link rel="shortcut icon" href="<?php echo $config->urls->templates; ?>images/favicon.ico">
<link rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates; ?>css/reset.css" />
<link rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates; ?>css/fonts.css" />
<link rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates; ?>vendors/Bootstrap/css/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates; ?>css/swiper.css" />
<link title="Praia de Seselle" rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates?>css/bs-style.css" />
<?php foreach($languages as $idioma): ?>
<?php if(!$page->viewable($idioma)): continue; endif; ?>
<link rel="alternate" hreflang="<?php echo $inicio->getLanguageValue($idioma, 'name'); ?>" href="<?php echo $page->httpUrl($idioma); ?>" />
<?php endforeach; ?>
<style>
:root
{
font-size: 16px;
--cor_60: <?php echo $configuracion['cor_fondo'] ?>;
--cor_30: <?php echo $configuracion['cor_principal'] ?>;
--cor_10: <?php echo $configuracion['cor_secundario'] ?>;
}
</style>
</head>
<body>
<a class="visually-hidden-focusable" href="#content"><?php echo _x('Skip to content', 'bypass'); ?></a>
<nav id="menus-1" class="py-2 bg-light border-bottom">
</nav>
<header id="cabeceira-1" class="py-0 mb-4">
</header>
<header id="cabeceira-2">
</header>
<main id="contido">
<?php echo renderMigasPan($page); ?>
</main>
<footer id="pe" class="py-4 border-top text-bg-primary">
</footer>
<script src="<?php echo $config->urls->templates?>vendors/Bootstrap/js/bootstrap.bundle.js"></script>
</body>
</html>

View file

@ -81,7 +81,7 @@ function getSeccions($seccions)
return $saida;
}
function renderMenu($paxinas, $maxDepth = 0, $id = 'nav')
function renderMenu($paxinas, $maxDepth = 0, $id = 'nav', $clases = '')
{
if($paxinas instanceof Page)
{
@ -93,17 +93,16 @@ function renderMenu($paxinas, $maxDepth = 0, $id = 'nav')
foreach($paxinas as $paxina)
{
$saida .= '<li class="nav-item">';
if($paxina->id == wire('page')->id)
{
$saida .= '<li class="activo">';
$saida .= '<a class="nav-link link-dark px-2 active" href="' . $paxina->url . '">' . mb_strtoupper($paxina->title) . '</a>';
}
else
{
$saida .= '<li>';
$saida .= '<a class="nav-link link-dark px-2" href="' . $paxina->url . '">' . mb_strtoupper($paxina->title) . '</a>';
}
$saida .= '<a href="' . $paxina->url . '">' . mb_strtoupper($paxina->title) . '</a>';
if($paxina->hasChildren() && $maxDepth)
{
if($id == 'nav')
@ -118,7 +117,7 @@ function renderMenu($paxinas, $maxDepth = 0, $id = 'nav')
if($saida)
{
$saida = '<ul id="' . $id . '">' . "\n" . $saida . '</ul>' . "\n";
$saida = '<ul id="' . $id . '" class="nav ' . $clases . '">' . "\n" . $saida . '</ul>' . "\n";
}
return $saida;

View file

@ -0,0 +1,26 @@
<?php namespace ProcessWire; ?>
<div class="container d-flex flex-wrap justify-content-between align-items-center" pw-append="pe">
<div class="col-md-4 d-flex align-items-center">
<a href="/" class="mb-3 me-2 mb-md-0 text-light text-decoration-none lh-1">
<picture class="me-2">
<img src="<?php echo $config->urls->templates?>images/logo-mini.png" alt="<?php echo _x('Logo of Praia de Seselle Tourist Apartments', 'Site logo'); ?>">
</picture>
</a>
<span class="mb-3 mb-md-0 text-light">&copy; 2022 <?php echo $configuracion['sitio_nome'] . ' ' . $configuracion['sitio_descripcion']; ?>.</span>
</div>
<a href="/" class="col-md-4 d-flex align-items-center justify-content-center mb-3 mb-md-0 me-md-auto link-dark text-decoration-none">
<picture class="me-2">
<img src="<?php echo $config->urls->templates?>images/edlp.jpg" alt="Axudas para proxectos EDLP">
</picture>
</a>
<ul class="nav col-md-4 justify-content-end list-unstyled d-flex fs-4">
<li class="ms-3"><a class="text-light text-decoration-none" href="#"><i class="icon-facebook"></i></a></li>
<li class="ms-3"><a class="text-light text-decoration-none" href="#"><i class="icon-instagram"></i></a></li>
</ul>
<div class="col-md-12 py-3">
<p class="text-center fs-6 text"><?php echo _x('Designed and Developed by', 'developer');?> <a class="text-light" target="_blank" href="https://artabro.org">Codigo Artabro</a></p>
<?php if($user->isLoggedin()): ?>
<p class="text-center fs-6 text"><?php $end = microtime(true); $creationtime = ($end - $start); printf(_x('Page created in %.6f seconds.', 'Render time.'), $creationtime); ?></p>
<?php endif; ?>
</div>
</div>

View file

@ -0,0 +1,56 @@
<?php namespace ProcessWire; ?>
<div class="container d-flex flex-wrap justify-content-center" pw-append="cabeceira-1">
<a href="/" class="d-flex align-items-center mb-3 mb-lg-0 me-lg-auto text-dark text-decoration-none">
<picture class="me-2">
<source srcset="<?php echo $config->urls->templates?>images/logo-praia-seselle-150x116.jpg" media="(max-width: 767px)">
<source srcset="<?php echo $config->urls->templates?>images/logo-praia-seselle-230x179.jpg" media="(min-width: 768px)">
<img src="<?php echo $config->urls->templates?>images/logo-praia-seselle.svg" alt="<?php echo _x('Logo of Praia de Seselle Tourist Apartments', 'Site logo'); ?>">
</picture>
<h1 class="visually-hidden"><?php echo $configuracion['sitio_nome']; ?> <?php echo $configuracion['sitio_descripcion']; ?></h1>
</a>
<form class="col-12 col-lg-auto py-2 mb-3 mb-lg-0" action="<?=pages()->get('template=atopar')->url?>" method="get" role="search">
<div class="input-group">
<div class="form-floating">
<input type="search" id="atopar-consulta" name="q" class="form-control rounded-0 shadow-none py-1" placeholder="<?php echo _x("Atopar", "Search"); ?>&hellip;" />
<label class="py-1" for="atopar-consulta"><?php echo _x("Atopar", "Search"); ?>&hellip;</label>
</div>
<button type="submit" class="btn btn-primary rounded-0">
<i class="icon-search"></i>
</button>
</div>
</form>
</div>
<div class="container" pw-append="cabeceira-2">
<div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start">
<a href="/" class="d-flex align-items-center mb-3 mb-lg-0 me-lg-auto text-dark text-decoration-none">
<picture class="me-2">
<source srcset="<?php echo $config->urls->templates?>images/logo-praia-seselle-150x116.jpg" media="(max-width: 767px)">
<source srcset="<?php echo $config->urls->templates?>images/logo-praia-seselle-230x179.jpg" media="(min-width: 768px)">
<img src="<?php echo $config->urls->templates?>images/logo-praia-seselle.svg" alt="<?php echo _x('Logo of Praia de Seselle Tourist Apartments', 'Site logo'); ?>">
</picture>
<h1 class="visually-hidden"><?php echo $configuracion['sitio_nome']; ?> <?php echo $configuracion['sitio_descripcion']; ?></h1>
</a>
<form class="col-12 col-lg-auto py-2 mb-3 mb-lg-0" action="<?=pages()->get('template=atopar')->url?>" method="get" role="search">
<div class="input-group">
<div class="form-floating">
<input type="search" id="atopar-consulta" name="q" class="form-control rounded-0 shadow-none py-1" placeholder="<?php echo _x("Atopar", "Search"); ?>&hellip;" />
<label class="py-1" for="atopar-consulta"><?php echo _x("Atopar", "Search"); ?>&hellip;</label>
</div>
<button type="submit" class="btn btn-primary rounded-0">
<i class="icon-search"></i>
</button>
</div>
</form>
<nav id="menus-usuario" class="py-2">
</nav>
</div>
</div>
<div class="border-bottom mb-3" pw-append="cabeceira-2">
<div class="container d-flex flex-wrap justify-content-center">
<nav id="menus-2" class="py-0">
</nav>
</div>
</div>

View file

@ -0,0 +1,51 @@
<?php namespace ProcessWire; ?>
<div class="container d-flex flex-wrap" pw-append="menus-1">
<?php echo renderMenu($page->and($inicio->children), 0, 'paxinas', 'me-auto'); ?>
<ul id="usuario" class="nav me-lg-3">
<?php if($user->isLoggedin()): ?>
<li class="nav-item"><a class="btn btn-outline-dark rounded-0 px-2" title="<?php echo _x('Log out', 'Log out'); ?>" href="/?logout=true"><i class='icon-user'></i></a></li>
<li class="nav-item"><a class="btn btn-outline-dark rounded-0 px-2" title="<?php echo _x('Management', 'Management'); ?>" href='/es/gestion'><i class='icon-settings'></i></a></li>
<?php else: ?>
<li class="nav-item"><a class="btn btn-outline-dark rounded-0 px-2" title="<?php echo _x('Log in', 'Log in'); ?>" href='/es/gestion/acceder'><i class='icon-user'></i></a></li>
<?php endif; ?>
</ul>
<ul id="idiomas" class="nav">
<?php foreach($languages as $idioma) : ?>
<?php if(!$page->viewable($idioma)) continue; ?>
<li class="nav-item">
<?php
$url = $page->localUrl($idioma);
$hreflang = $inicio->getLanguageValue($idioma, 'name');
?>
<a class="px-2 btn btn-outline-dark rounded-0<?php echo $idioma->id == $user->language->id ? ' active' : ''; ?>" title="<?php echo $idioma->title; ?>" hreflang="<?php echo $hreflang;?>" href="<?php echo $url; ?>"><?php echo $hreflang; ?></a>
</li>
<?php endforeach; ?>
</ul>
</div>
<div class="container d-flex flex-wrap" pw-append="menus-usuario">
<ul id="usuario" class="nav me-lg-3">
<?php if($user->isLoggedin()): ?>
<li class="nav-item"><a class="btn btn-outline-dark rounded-0 px-2" title="<?php echo _x('Log out', 'Log out'); ?>" href="/?logout=true"><i class='icon-user'></i></a></li>
<li class="nav-item"><a class="btn btn-outline-dark rounded-0 px-2" title="<?php echo _x('Management', 'Management'); ?>" href='/es/gestion'><i class='icon-settings'></i></a></li>
<?php else: ?>
<li class="nav-item"><a class="btn btn-outline-dark rounded-0 px-2" title="<?php echo _x('Log in', 'Log in'); ?>" href='/es/gestion/acceder'><i class='icon-user'></i></a></li>
<?php endif; ?>
</ul>
<ul id="idiomas" class="nav">
<?php foreach($languages as $idioma) : ?>
<?php if(!$page->viewable($idioma)) continue; ?>
<li class="nav-item">
<?php
$url = $page->localUrl($idioma);
$hreflang = $inicio->getLanguageValue($idioma, 'name');
?>
<a class="px-2 btn btn-outline-dark rounded-0<?php echo $idioma->id == $user->language->id ? ' active' : ''; ?>" title="<?php echo $idioma->title; ?>" hreflang="<?php echo $hreflang;?>" href="<?php echo $url; ?>"><?php echo $hreflang; ?></a>
</li>
<?php endforeach; ?>
</ul>
</div>
<div class="container" pw-append="menus-2">
<?php echo renderMenu($page->and($inicio->children), 0, 'paxinas', 'col-12 col-lg-auto my-2 justify-content-center my-md-0 text-small'); ?>
</div>

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,488 @@
/*!
* Bootstrap Reboot v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root {
--bs-blue: #0d6efd;
--bs-indigo: #6610f2;
--bs-purple: #6f42c1;
--bs-pink: #d63384;
--bs-red: #dc3545;
--bs-orange: #fd7e14;
--bs-yellow: #ffc107;
--bs-green: #198754;
--bs-teal: #20c997;
--bs-cyan: #0dcaf0;
--bs-black: #000;
--bs-white: #fff;
--bs-gray: #6c757d;
--bs-gray-dark: #343a40;
--bs-gray-100: #f8f9fa;
--bs-gray-200: #e9ecef;
--bs-gray-300: #dee2e6;
--bs-gray-400: #ced4da;
--bs-gray-500: #adb5bd;
--bs-gray-600: #6c757d;
--bs-gray-700: #495057;
--bs-gray-800: #343a40;
--bs-gray-900: #212529;
--bs-primary: #0d6efd;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-info: #0dcaf0;
--bs-warning: #ffc107;
--bs-danger: #dc3545;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-primary-rgb: 13, 110, 253;
--bs-secondary-rgb: 108, 117, 125;
--bs-success-rgb: 25, 135, 84;
--bs-info-rgb: 13, 202, 240;
--bs-warning-rgb: 255, 193, 7;
--bs-danger-rgb: 220, 53, 69;
--bs-light-rgb: 248, 249, 250;
--bs-dark-rgb: 33, 37, 41;
--bs-white-rgb: 255, 255, 255;
--bs-black-rgb: 0, 0, 0;
--bs-body-color-rgb: 33, 37, 41;
--bs-body-bg-rgb: 255, 255, 255;
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #212529;
--bs-body-bg: #fff;
--bs-border-width: 1px;
--bs-border-style: solid;
--bs-border-color: #dee2e6;
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-2xl: 2rem;
--bs-border-radius-pill: 50rem;
--bs-link-color: #0d6efd;
--bs-link-hover-color: #0a58ca;
--bs-code-color: #d63384;
--bs-highlight-bg: #fff3cd;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
@media (prefers-reduced-motion: no-preference) {
:root {
scroll-behavior: smooth;
}
}
body {
margin: 0;
font-family: var(--bs-body-font-family);
font-size: var(--bs-body-font-size);
font-weight: var(--bs-body-font-weight);
line-height: var(--bs-body-line-height);
color: var(--bs-body-color);
text-align: var(--bs-body-text-align);
background-color: var(--bs-body-bg);
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
hr {
margin: 1rem 0;
color: inherit;
border: 0;
border-top: 1px solid;
opacity: 0.25;
}
h6, h5, h4, h3, h2, h1 {
margin-top: 0;
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
}
h1 {
font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
h1 {
font-size: 2.5rem;
}
}
h2 {
font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
h2 {
font-size: 2rem;
}
}
h3 {
font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
h3 {
font-size: 1.75rem;
}
}
h4 {
font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
h4 {
font-size: 1.5rem;
}
}
h5 {
font-size: 1.25rem;
}
h6 {
font-size: 1rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title] {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul {
padding-left: 2rem;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: 0.5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 0.875em;
}
mark {
padding: 0.1875em;
background-color: var(--bs-highlight-bg);
}
sub,
sup {
position: relative;
font-size: 0.75em;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
a {
color: var(--bs-link-color);
text-decoration: underline;
}
a:hover {
color: var(--bs-link-hover-color);
}
a:not([href]):not([class]), a:not([href]):not([class]):hover {
color: inherit;
text-decoration: none;
}
pre,
code,
kbd,
samp {
font-family: var(--bs-font-monospace);
font-size: 1em;
}
pre {
display: block;
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
font-size: 0.875em;
}
pre code {
font-size: inherit;
color: inherit;
word-break: normal;
}
code {
font-size: 0.875em;
color: var(--bs-code-color);
word-wrap: break-word;
}
a > code {
color: inherit;
}
kbd {
padding: 0.1875rem 0.375rem;
font-size: 0.875em;
color: var(--bs-body-bg);
background-color: var(--bs-body-color);
border-radius: 0.25rem;
}
kbd kbd {
padding: 0;
font-size: 1em;
}
figure {
margin: 0 0 1rem;
}
img,
svg {
vertical-align: middle;
}
table {
caption-side: bottom;
border-collapse: collapse;
}
caption {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
color: #6c757d;
text-align: left;
}
th {
text-align: inherit;
text-align: -webkit-match-parent;
}
thead,
tbody,
tfoot,
tr,
td,
th {
border-color: inherit;
border-style: solid;
border-width: 0;
}
label {
display: inline-block;
}
button {
border-radius: 0;
}
button:focus:not(:focus-visible) {
outline: 0;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
select {
text-transform: none;
}
[role=button] {
cursor: pointer;
}
select {
word-wrap: normal;
}
select:disabled {
opacity: 1;
}
[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
display: none !important;
}
button,
[type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
cursor: pointer;
}
::-moz-focus-inner {
padding: 0;
border-style: none;
}
textarea {
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
float: left;
width: 100%;
padding: 0;
margin-bottom: 0.5rem;
font-size: calc(1.275rem + 0.3vw);
line-height: inherit;
}
@media (min-width: 1200px) {
legend {
font-size: 1.5rem;
}
}
legend + * {
clear: left;
}
::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
padding: 0;
}
::-webkit-inner-spin-button {
height: auto;
}
[type=search] {
outline-offset: -2px;
-webkit-appearance: textfield;
}
/* rtl:raw:
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
direction: ltr;
}
*/
::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-color-swatch-wrapper {
padding: 0;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
::file-selector-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
iframe {
border: 0;
}
summary {
display: list-item;
cursor: pointer;
}
progress {
vertical-align: baseline;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,485 @@
/*!
* Bootstrap Reboot v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root {
--bs-blue: #0d6efd;
--bs-indigo: #6610f2;
--bs-purple: #6f42c1;
--bs-pink: #d63384;
--bs-red: #dc3545;
--bs-orange: #fd7e14;
--bs-yellow: #ffc107;
--bs-green: #198754;
--bs-teal: #20c997;
--bs-cyan: #0dcaf0;
--bs-black: #000;
--bs-white: #fff;
--bs-gray: #6c757d;
--bs-gray-dark: #343a40;
--bs-gray-100: #f8f9fa;
--bs-gray-200: #e9ecef;
--bs-gray-300: #dee2e6;
--bs-gray-400: #ced4da;
--bs-gray-500: #adb5bd;
--bs-gray-600: #6c757d;
--bs-gray-700: #495057;
--bs-gray-800: #343a40;
--bs-gray-900: #212529;
--bs-primary: #0d6efd;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-info: #0dcaf0;
--bs-warning: #ffc107;
--bs-danger: #dc3545;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-primary-rgb: 13, 110, 253;
--bs-secondary-rgb: 108, 117, 125;
--bs-success-rgb: 25, 135, 84;
--bs-info-rgb: 13, 202, 240;
--bs-warning-rgb: 255, 193, 7;
--bs-danger-rgb: 220, 53, 69;
--bs-light-rgb: 248, 249, 250;
--bs-dark-rgb: 33, 37, 41;
--bs-white-rgb: 255, 255, 255;
--bs-black-rgb: 0, 0, 0;
--bs-body-color-rgb: 33, 37, 41;
--bs-body-bg-rgb: 255, 255, 255;
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #212529;
--bs-body-bg: #fff;
--bs-border-width: 1px;
--bs-border-style: solid;
--bs-border-color: #dee2e6;
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-2xl: 2rem;
--bs-border-radius-pill: 50rem;
--bs-link-color: #0d6efd;
--bs-link-hover-color: #0a58ca;
--bs-code-color: #d63384;
--bs-highlight-bg: #fff3cd;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
@media (prefers-reduced-motion: no-preference) {
:root {
scroll-behavior: smooth;
}
}
body {
margin: 0;
font-family: var(--bs-body-font-family);
font-size: var(--bs-body-font-size);
font-weight: var(--bs-body-font-weight);
line-height: var(--bs-body-line-height);
color: var(--bs-body-color);
text-align: var(--bs-body-text-align);
background-color: var(--bs-body-bg);
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
hr {
margin: 1rem 0;
color: inherit;
border: 0;
border-top: 1px solid;
opacity: 0.25;
}
h6, h5, h4, h3, h2, h1 {
margin-top: 0;
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
}
h1 {
font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
h1 {
font-size: 2.5rem;
}
}
h2 {
font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
h2 {
font-size: 2rem;
}
}
h3 {
font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
h3 {
font-size: 1.75rem;
}
}
h4 {
font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
h4 {
font-size: 1.5rem;
}
}
h5 {
font-size: 1.25rem;
}
h6 {
font-size: 1rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title] {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul {
padding-right: 2rem;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: 0.5rem;
margin-right: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 0.875em;
}
mark {
padding: 0.1875em;
background-color: var(--bs-highlight-bg);
}
sub,
sup {
position: relative;
font-size: 0.75em;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
a {
color: var(--bs-link-color);
text-decoration: underline;
}
a:hover {
color: var(--bs-link-hover-color);
}
a:not([href]):not([class]), a:not([href]):not([class]):hover {
color: inherit;
text-decoration: none;
}
pre,
code,
kbd,
samp {
font-family: var(--bs-font-monospace);
font-size: 1em;
}
pre {
display: block;
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
font-size: 0.875em;
}
pre code {
font-size: inherit;
color: inherit;
word-break: normal;
}
code {
font-size: 0.875em;
color: var(--bs-code-color);
word-wrap: break-word;
}
a > code {
color: inherit;
}
kbd {
padding: 0.1875rem 0.375rem;
font-size: 0.875em;
color: var(--bs-body-bg);
background-color: var(--bs-body-color);
border-radius: 0.25rem;
}
kbd kbd {
padding: 0;
font-size: 1em;
}
figure {
margin: 0 0 1rem;
}
img,
svg {
vertical-align: middle;
}
table {
caption-side: bottom;
border-collapse: collapse;
}
caption {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
color: #6c757d;
text-align: right;
}
th {
text-align: inherit;
text-align: -webkit-match-parent;
}
thead,
tbody,
tfoot,
tr,
td,
th {
border-color: inherit;
border-style: solid;
border-width: 0;
}
label {
display: inline-block;
}
button {
border-radius: 0;
}
button:focus:not(:focus-visible) {
outline: 0;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
select {
text-transform: none;
}
[role=button] {
cursor: pointer;
}
select {
word-wrap: normal;
}
select:disabled {
opacity: 1;
}
[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
display: none !important;
}
button,
[type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
cursor: pointer;
}
::-moz-focus-inner {
padding: 0;
border-style: none;
}
textarea {
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
float: right;
width: 100%;
padding: 0;
margin-bottom: 0.5rem;
font-size: calc(1.275rem + 0.3vw);
line-height: inherit;
}
@media (min-width: 1200px) {
legend {
font-size: 1.5rem;
}
}
legend + * {
clear: right;
}
::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
padding: 0;
}
::-webkit-inner-spin-button {
height: auto;
}
[type=search] {
outline-offset: -2px;
-webkit-appearance: textfield;
}
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
direction: ltr;
}
::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-color-swatch-wrapper {
padding: 0;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
::file-selector-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
iframe {
border: 0;
}
summary {
display: list-item;
cursor: pointer;
}
progress {
vertical-align: baseline;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.rtl.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long