initial commit
This commit is contained in:
commit
9439de0603
600 changed files with 124248 additions and 0 deletions
0
site/accounts/index.html
Normal file
0
site/accounts/index.html
Normal file
0
site/blueprints/files/default.yml
Normal file
0
site/blueprints/files/default.yml
Normal file
9
site/blueprints/pages/agency.yml
Normal file
9
site/blueprints/pages/agency.yml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
title: Agence
|
||||
icon: home
|
||||
|
||||
sections:
|
||||
intro:
|
||||
type: fields
|
||||
fields:
|
||||
presentation:
|
||||
type: textarea
|
||||
8
site/blueprints/pages/default.yml
Normal file
8
site/blueprints/pages/default.yml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
title: Default Page
|
||||
preset: page
|
||||
fields:
|
||||
text:
|
||||
label: Text
|
||||
type: textarea
|
||||
size: large
|
||||
|
||||
9
site/blueprints/pages/home.yml
Normal file
9
site/blueprints/pages/home.yml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
title: Accueil
|
||||
icon: layers
|
||||
|
||||
sections:
|
||||
projets:
|
||||
label: Projets
|
||||
type: pages
|
||||
layout: cards
|
||||
create: project
|
||||
156
site/blueprints/pages/project.yml
Normal file
156
site/blueprints/pages/project.yml
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
title: Projet
|
||||
|
||||
tabs:
|
||||
main:
|
||||
label: Présentation
|
||||
icon: page
|
||||
columns:
|
||||
cover:
|
||||
width: 1/2
|
||||
sections:
|
||||
project:
|
||||
label: Projet
|
||||
type: fields
|
||||
fields:
|
||||
coverImage:
|
||||
label: Image principale*
|
||||
type: files
|
||||
layout: cards
|
||||
max: 1
|
||||
help: *Utilisée en vue liste.
|
||||
size: medium
|
||||
covercaption:
|
||||
label: Légende de l'image principale
|
||||
type: text
|
||||
width: 1/2
|
||||
major:
|
||||
label: Projet principal* ?
|
||||
help: *Affiché sur la page agence.
|
||||
type: toggle
|
||||
default: false
|
||||
width: 1/2
|
||||
text:
|
||||
- non
|
||||
- oui
|
||||
content:
|
||||
width: 1/2
|
||||
sections:
|
||||
projectcontent:
|
||||
label: Projet
|
||||
type: fields
|
||||
fields:
|
||||
intro:
|
||||
label: Présentation
|
||||
type: textarea
|
||||
help: Texte également utilisé par les moteurs de recherche. Veillez à présenter d'emblée les éléments principaux du projet.
|
||||
counter: true
|
||||
|
||||
recap:
|
||||
label: Fiche technique
|
||||
icon: book
|
||||
sections:
|
||||
infos:
|
||||
label: Informations
|
||||
type: fields
|
||||
fields:
|
||||
ref:
|
||||
label: Référence
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: ARX
|
||||
place:
|
||||
label: Emplacement
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: Paris, France
|
||||
start:
|
||||
label: Date de début
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: 2018
|
||||
end:
|
||||
label: Date de fin
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: 2020
|
||||
architects:
|
||||
label: Maîtrise d'œuvre
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: Data mandataire
|
||||
be:
|
||||
label: Bureaux d'étude
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: Elioth
|
||||
pgm:
|
||||
label: Type de programme
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: Logements
|
||||
credits:
|
||||
label: Crédits visuels
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: Auteur.e.s des visuels
|
||||
mo:
|
||||
label: Maîtrise d'ouvrage
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: Semapa
|
||||
size:
|
||||
label: Surface
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: 35 000 m2
|
||||
budget:
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: 45M €
|
||||
state:
|
||||
label: Statut
|
||||
type: text
|
||||
width: 1/2
|
||||
placeholder: Livré
|
||||
gallery:
|
||||
label: Galerie
|
||||
icon: file-image
|
||||
sections:
|
||||
pictures:
|
||||
label: Images
|
||||
type: fields
|
||||
fields:
|
||||
blocks:
|
||||
label: Galerie
|
||||
type: structure
|
||||
columns:
|
||||
pic:
|
||||
width: 1/4
|
||||
caption:
|
||||
width: 1/4
|
||||
home:
|
||||
width: 1/5
|
||||
project:
|
||||
width: 1/5
|
||||
fields:
|
||||
pic:
|
||||
label: Image
|
||||
type: files
|
||||
max: 1
|
||||
layout: cards
|
||||
size: medium
|
||||
width: 1/4
|
||||
caption:
|
||||
label: Légende
|
||||
type: textarea
|
||||
buttons: false
|
||||
width: 1/4
|
||||
home:
|
||||
label: Afficher sur l'accueil
|
||||
type: toggle
|
||||
default: true
|
||||
width: 1/4
|
||||
project:
|
||||
label: Afficher sur la page projet
|
||||
type: toggle
|
||||
width: 1/4
|
||||
76
site/blueprints/site.yml
Normal file
76
site/blueprints/site.yml
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
title: Site
|
||||
|
||||
tabs:
|
||||
projects:
|
||||
label: Projets
|
||||
icon: layers
|
||||
columns:
|
||||
left:
|
||||
width: 1/4
|
||||
sections:
|
||||
displaySection:
|
||||
type: fields
|
||||
fields:
|
||||
orderProjects:
|
||||
label: Mode d'affichage
|
||||
type: toggle
|
||||
text: ['Aléatoire', 'Ordonné']
|
||||
help: En mode "Ordonné", les images de la page d'accueil respectent l'ordre ci-contre et celui des images des pages projets (image principale puis ordre de la galerie).
|
||||
right:
|
||||
width: 3/4
|
||||
sections:
|
||||
projectsSection:
|
||||
headline: Projets
|
||||
type: pages
|
||||
label: Projets
|
||||
layout: cards
|
||||
image:
|
||||
back: white
|
||||
template:
|
||||
- project
|
||||
|
||||
agency:
|
||||
label: Agence
|
||||
icon: home
|
||||
sections:
|
||||
agencySection:
|
||||
headline: Agence
|
||||
type: fields
|
||||
fields:
|
||||
presentation:
|
||||
type: textarea
|
||||
autofocus: true
|
||||
|
||||
site:
|
||||
icon: cog
|
||||
columns:
|
||||
- width: 1/2
|
||||
sections:
|
||||
logoSection:
|
||||
headline: Logo
|
||||
type: fields
|
||||
fields:
|
||||
logoImg:
|
||||
label: Logo
|
||||
type: files
|
||||
max: 1
|
||||
layout: cards
|
||||
size: medium
|
||||
help: Utilisée pour les partages sur les réseaux sociaux.
|
||||
- width: 1/2
|
||||
sections:
|
||||
seoSection:
|
||||
headline: SEO
|
||||
type: fields
|
||||
fields:
|
||||
favicon:
|
||||
type: files
|
||||
max: 1
|
||||
layout: cards
|
||||
size: small
|
||||
help: Affichée dans au niveau de l'onglet du navigateur.
|
||||
description:
|
||||
type: textarea
|
||||
help: Texte utilisé par les moteurs de recherche. 160 caractères max.
|
||||
maxlength: 200
|
||||
autofocus: true
|
||||
0
site/cache/index.html
vendored
Normal file
0
site/cache/index.html
vendored
Normal file
45
site/config/config.php
Normal file
45
site/config/config.php
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'debug' => true,
|
||||
'routes' => [
|
||||
[
|
||||
'pattern' => 'sitemap.xml',
|
||||
'action' => function() {
|
||||
$pages = site()->pages()->index();
|
||||
|
||||
// fetch the pages to ignore from the config settings,
|
||||
// if nothing is set, we ignore the error page
|
||||
$ignore = kirby()->option('sitemap.ignore', ['error']);
|
||||
|
||||
$content = snippet('sitemap', compact('pages', 'ignore'), true);
|
||||
|
||||
// return response with correct header type
|
||||
return new Kirby\Cms\Response($content, 'application/xml');
|
||||
}
|
||||
],
|
||||
[
|
||||
'pattern' => 'sitemap',
|
||||
'action' => function() {
|
||||
return go('sitemap.xml', 301);
|
||||
}
|
||||
]
|
||||
],
|
||||
'thumbs' => [
|
||||
'srcsets' => [
|
||||
'default' => [
|
||||
'450w' => ['width' => 450, 'quality' => 90],
|
||||
'800w' => ['width' => 800, 'quality' => 90],
|
||||
'1024w' => ['width' => 900, 'quality' => 90],
|
||||
'1440w' => ['width' => 1200, 'quality' => 90],
|
||||
'2048w' => ['width' => 1700, 'quality' => 90],
|
||||
'2900w' => ['width' => 2500, 'quality' => 90],
|
||||
'3000w' => ['width' => 2800, 'quality' => 90],
|
||||
'3500w' => ['width' => 3000, 'quality' => 90],
|
||||
'4000w' => ['width' => 3500, 'quality' => 90],
|
||||
'4500w' => ['width' => 4000, 'quality' => 90],
|
||||
'5000w' => ['width' => 4500, 'quality' => 90]
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
0
site/sessions/index.html
Normal file
0
site/sessions/index.html
Normal file
30
site/snippets/header.php
Normal file
30
site/snippets/header.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title data-url="<?= $site->url() ?>">DATA Architectes</title>
|
||||
<link rel="stylesheet" href="/assets/style.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/swiper@6/swiper-bundle.min.css">
|
||||
<link rel="icon" type="image/png" href="<?= $site->favicon()->toFile()->url() ?>" />
|
||||
|
||||
<meta description="<?php
|
||||
if($page->intro()->isNotEmpty()) {
|
||||
echo $page->intro();
|
||||
} else {
|
||||
echo $site->description();
|
||||
}
|
||||
?>">
|
||||
|
||||
<meta property='og:title' content='Data architectes' />
|
||||
<meta property='og:type' content='website' />
|
||||
<meta property='og:url' content='<?= $site->url() ?>' />
|
||||
<meta property='og:image' content='<?= $site->Logoimg()->toFile()->url() ?>' />
|
||||
<meta property='og:description' content='<?= $site->description() ?>' />
|
||||
|
||||
<meta name='twitter:title' content='Data architectes' />
|
||||
<meta name='twitter:description' content='<?= $site->description() ?>' />
|
||||
<meta name='twitter:card' content='summary_large_image' />
|
||||
<meta name='twitter:image' content='<?= $site->Logoimg()->toFile()->url() ?>'>
|
||||
</head>
|
||||
<body>
|
||||
0
site/snippets/index.html
Normal file
0
site/snippets/index.html
Normal file
11
site/snippets/sitemap.php
Normal file
11
site/snippets/sitemap.php
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?= '<?xml version="1.0" encoding="utf-8"?>'; ?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<?php foreach ($pages as $p): ?>
|
||||
<?php if (in_array($p->uri(), $ignore)) continue ?>
|
||||
<url>
|
||||
<loc><?= html($p->url()) ?></loc>
|
||||
<lastmod><?= $p->modified('c', 'date') ?></lastmod>
|
||||
<priority><?= ($p->isHomePage()) ? 1 : number_format(0.5 / $p->depth(), 1) ?></priority>
|
||||
</url>
|
||||
<?php endforeach ?>
|
||||
</urlset>
|
||||
43
site/templates/agency.php
Normal file
43
site/templates/agency.php
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<?= snippet('header') ?>
|
||||
|
||||
<header class="header">
|
||||
<h1 class="header__logo" data-title="<?= $site->title() ?>">INFO</h1>
|
||||
<div class="header__views views header__views--unvisible" style="opacity: 1">
|
||||
<button class="views__btn views__btn--close" style="display: block">
|
||||
<img src="<?= $kirby->url('assets') ?>/svg/close.svg" alt="">
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="wrapper">
|
||||
<div class="agency">
|
||||
<section class="agency__presentation"><?= $site->presentation()->kt() ?></section>
|
||||
<section class="agency__projects">
|
||||
<h1 class="majorProjects">Projets principaux</h1>
|
||||
<?php foreach ($site->children()->sortBy('start', 'desc') as $project): ?>
|
||||
<?php if ($project->major() == 'true'): ?>
|
||||
<?php if ($project->start()->isNotEmpty() && $project->end()->isNotEmpty()) :?>
|
||||
<?= $project->start() ?> - <?= $project->end() ?> – <?= $project->title() ?><br />
|
||||
<?php else : ?>
|
||||
<?= $project->start() ?><?= $project->end() ?> – <?= $project->title() ?><br />
|
||||
<?php endif ?>
|
||||
<?php endif ?>
|
||||
<?php endforeach ?>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
history.pushState(null, '<?= $site->title() ?>', '<?= $site->url() ?>')
|
||||
history.pushState(null, '<?= $page->title() ?>', '<?= $page->url() ?>')
|
||||
|
||||
window.onpopstate = function() {
|
||||
window.location.href = window.location.href
|
||||
}
|
||||
document.querySelector('.views__btn--close').addEventListener('click', () => {
|
||||
document.location.replace('<?= $site->url() ?>')
|
||||
})
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
site/templates/default.php
Normal file
1
site/templates/default.php
Normal file
|
|
@ -0,0 +1 @@
|
|||
<h1><?= $page->title() ?></h1>
|
||||
131
site/templates/home.php
Normal file
131
site/templates/home.php
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
<?= snippet('header') ?>
|
||||
|
||||
<header class="header">
|
||||
<a class="logoBtn" href="<?= $site->find('agence')->url() ?>"><h1 class="header__logo header__logo--big">DATA</h1></a>
|
||||
<div class="header__views views">
|
||||
<button class="views__btn views__btn--smaller">
|
||||
<img src="./assets/svg/smaller.svg" />
|
||||
</button>
|
||||
<button class="views__btn views__btn--bigger">
|
||||
<img src="./assets/svg/bigger.svg" />
|
||||
</button>
|
||||
<button class="views__btn views__btn--close hide">
|
||||
<img src="./assets/svg/close.svg" alt="">
|
||||
</button>
|
||||
<button class="views__btn--mobile hide">
|
||||
<h1>Liste</h1>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<section class="grid grid--5">
|
||||
<?php
|
||||
$allBlocks = [];
|
||||
|
||||
foreach($site->children()->listed() as $project) {
|
||||
if ($project->coverImage()->isNotEmpty()) {
|
||||
$block = [
|
||||
"pic" => $project->coverImage()->toFile(),
|
||||
"projectTitle" => $project->title(),
|
||||
"caption" => $project->coverCaption(),
|
||||
"link" => $project->url(),
|
||||
"showHome" => 'true',
|
||||
"ref" => $project->ref()
|
||||
];
|
||||
array_push($allBlocks, $block);
|
||||
};
|
||||
|
||||
if ($project->blocks()->isNotEmpty()) {
|
||||
$pictures = $project->blocks()->toStructure();
|
||||
|
||||
foreach ($pictures as $picture) {
|
||||
if ($picture->home() == "true") {
|
||||
$block = [
|
||||
"pic" => $picture->pic()->toFile(),
|
||||
"projectTitle" => $project->title(),
|
||||
"caption" => $picture->caption(),
|
||||
"link" => $project->url(),
|
||||
"ref" => $project->ref()
|
||||
];
|
||||
|
||||
array_push($allBlocks, $block);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if ($site->orderprojects() == 'false') shuffle($allBlocks);
|
||||
foreach($allBlocks as $block) {
|
||||
echo '<a class="toProject toProject--wait" data-title="' . $block["projectTitle"] . '" href="' . $block["link"] . '">';
|
||||
echo '<figure class="block hide">';
|
||||
echo "<img class=\"block__image\" src=\""
|
||||
. $block["pic"]->url()
|
||||
. "\" loading=\"lazy\" srcset=\"" . $block["pic"]->srcset() . "\" />";
|
||||
echo '<figcaption class="block__caption">' . '<span class="block__ref">' . $block["ref"] . '</span> ' . $block["caption"] . '</figcation>';
|
||||
echo '</figure>';
|
||||
echo "</a>";
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
|
||||
<section class="project hide" style="display: none"></section>
|
||||
|
||||
<section class="list hide" style ="display: none">
|
||||
<?php
|
||||
foreach ($site->children()->sortBy('end', 'desc', 'start', 'desc') as $project) {
|
||||
if ($project->coverImage()->isNotEmpty()) {
|
||||
echo '<a class="list__project projectLine" href="' . $project->url() . '">';
|
||||
echo '<div class="projectLine__cell projectLine__cell--image cell"><img class="cell__image" src="' . $project->coverImage()->toFile()->url() . '" srcset="' . $project->coverImage()->toFile()->srcset() . '" /></div>';
|
||||
echo '<div class="projectLine__cell projectLine__cell--title cell"><p class="cell__text cell__text--title"> <span class="cell__text--ref">' . $project->ref() . '</span> ' . $project->title() . '</p></div>';
|
||||
echo '<div class="projectLine__cell projectLine__cell--title cell"><p class="cell__text cell__text--place">' . $project->place() . '</p></div>';
|
||||
echo '<div class="projectLine__cell projectLine__cell--title cell"><p class="cell__text cell__text--dates">';
|
||||
if ($project->start()->isNotEmpty() && $project->end()->isNotEmpty()) {
|
||||
echo $project->start() . ' - ' . $project->end();
|
||||
} else if ($project->start()->isNotEmpty() || $project->end()->isNotEmpty()) {
|
||||
echo $project->start() . $project->end();
|
||||
};
|
||||
echo '</p></div>';
|
||||
echo '<div class="projectLine__cell projectLine__cell--title cell"><p class="cell__text cell__text--architects">' . $project->architects() . '</p></div>';
|
||||
echo '<div class="projectLine__cell projectLine__cell--title cell"><p class="cell__text cell__text--mo">' . $project->mo() . '</p></div>';
|
||||
echo '<div class="projectLine__cell projectLine__cell--title cell"><p class="cell__text cell__text--size">' . $project->size() . '</p></div>';
|
||||
echo '<div class="projectLine__cell projectLine__cell--title cell"><p class="cell__text cell__text--state">' . $project->state() . '</p></div>';
|
||||
echo '</a>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
<section class="list--mobile" style="display: none">
|
||||
<?php
|
||||
foreach ($site->children()->sortBy('end', 'desc', 'start', 'desc') as $project) {
|
||||
if ($project->coverImage()->isNotEmpty()) {
|
||||
echo '<a class="list__project--mobile projectLine--mobile" href="' . $project->url() . '">';
|
||||
echo '<div class="projectLine__cell--mobile projectLine__cell--image--mobile cell--mobile"><img class="cell__image--mobile" loading="lazy" src="' . $project->coverImage()->toFile()->url() . '" srcset="' . $project->coverImage()->toFile()->srcset() . '" /></div>';
|
||||
echo '<div class="projectLine__cell--mobile projectLine__cell--summary--mobile cell--mobile">';
|
||||
echo '<p class="cell__text--mobile cell__text--title--mobile"> <span class="cell__text--ref--mobile">' . $project->ref() . '</span> ' . $project->title() . '</br />';
|
||||
if ($project->start()->isNotEmpty() && $project->end()->isNotEmpty()) {
|
||||
echo $project->start() . ' - ' . $project->end() . ', ' . $project->place() . '<br />';
|
||||
} else if ($project->start()->isNotEmpty() || $project->end()->isNotEmpty()) {
|
||||
echo $project->start() . $project->end() . ', ' . $project->place() . '<br />';
|
||||
}
|
||||
if ($project->architects()->isNotEmpty()) {
|
||||
echo 'MOE : ' . $project->architects() . '<br />';
|
||||
}
|
||||
if ($project->moa()->isNotEmpty()) {
|
||||
echo 'MOA : ' . $project->moa() . '<br />';
|
||||
}
|
||||
if ($project->size()->isNotEmpty() && $project->budget()->isNotEmpty()) {
|
||||
echo $project->size() . ', ' . $project->budget();
|
||||
} else if ($project->size()->isNotEmpty() || $project->budget()->isNotEmpty()) {
|
||||
echo $project->size();
|
||||
}
|
||||
echo '</p>';
|
||||
echo '</div>';
|
||||
echo '</a>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
|
||||
<?= js('./assets/js/main.js') ?>
|
||||
</body>
|
||||
</html>
|
||||
157
site/templates/project.php
Normal file
157
site/templates/project.php
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
<?= snippet('header') ?>
|
||||
|
||||
<header class="header">
|
||||
<a href="<?= $site->find('agence')->url() ?>"><h1 class="header__logo">DATA</h1></a>
|
||||
<div class="header__views views header__views--unvisible" style="opacity: 1">
|
||||
<button class="views__btn views__btn--close" style="display: block">
|
||||
<img src="/assets/svg/close.svg" alt="">
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="project">
|
||||
<div class="projectContainer">
|
||||
<!-- Slider main container -->
|
||||
<div class="swiper-container">
|
||||
<!-- Additional required wrapper -->
|
||||
<div class="swiper-wrapper">
|
||||
<!-- Slides -->
|
||||
|
||||
<!-- Image principale -->
|
||||
<div class="swiper-slide">
|
||||
<img class="swiper-slide__image" src="<?= $page->coverImage()->toFile()->url() ?>" srcset=" <?= $page->coverImage()->toFile()->srcset() ?>" />
|
||||
</div>
|
||||
|
||||
<!-- Galerie -->
|
||||
<?php
|
||||
|
||||
$images = $page->blocks()->toStructure();
|
||||
|
||||
foreach ($images as $image): ?>
|
||||
<?php if ($image->project() == 'true' && $image->pic() !== NULL): ?>
|
||||
<div class="swiper-slide">
|
||||
<img class="swiper-slide__image" src="<?= $image->pic()->toFile()->url() ?>" srcset=" <?= $image->pic()->toFile()->srcset() ?>" />
|
||||
</div>
|
||||
<?php endif ?>
|
||||
<?php endforeach ?>
|
||||
|
||||
<!-- Slide texte -->
|
||||
<div class="swiper-slide">
|
||||
<div class="swiper-slide__intro">
|
||||
<span class="intro__recap">
|
||||
<?php if ($page->start()->isNotEmpty() && $page->end()->isNotEmpty()) : ?>
|
||||
<span class="recap__item">
|
||||
<?php echo $page->start() . ' - ' . $page->end() . ', ' . $page->place() . '<br />' ?>
|
||||
</span>
|
||||
|
||||
<?php elseif ($page->start()->isNotEmpty() || $page->end()->isNotEmpty()): ?>
|
||||
<span class="recap__item">
|
||||
<?= $page->start() ?><?= $page->end() ?>, <?= $page->place() ?>
|
||||
</span>
|
||||
<br />
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($page->pgm()->isNotEmpty()): ?>
|
||||
<span class="recap__item">
|
||||
<?= $page->pgm() ?>
|
||||
</span>
|
||||
<br />
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($page->architects()->isNotEmpty()): ?>
|
||||
<span class="recap__item">
|
||||
ARCHITECTES : <?= $page->architects() ?>
|
||||
</span>
|
||||
<br />
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($page->be()->isNotEmpty()): ?>
|
||||
<span class="recap__item">
|
||||
BE : <?= $page->be() ?>
|
||||
</span>
|
||||
<br />
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($page->mo()->isNotEmpty()): ?>
|
||||
<span class="recap__item">
|
||||
MOA : <?= $page->mo() ?>
|
||||
</span>
|
||||
<br />
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($page->size()->isNotEmpty()): ?>
|
||||
<span class="recap__item">
|
||||
<?= $page->size() ?>
|
||||
</span>
|
||||
<br />
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($page->credits()->isNotEmpty()): ?>
|
||||
<span class="recap__item">
|
||||
<?= $page->credits() ?>
|
||||
</span>
|
||||
<?php endif ?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Fin slide texte -->
|
||||
</div>
|
||||
<!-- If we need pagination -->
|
||||
<!-- <div class="swiper-pagination"></div> -->
|
||||
|
||||
<!-- Navigation buttons -->
|
||||
<div class="swiper-button-prev"></div>
|
||||
<div class="swiper-button-next"></div>
|
||||
|
||||
<!-- If we need scrollbar -->
|
||||
<!-- <div class="swiper-scrollbar"></div> -->
|
||||
</div>
|
||||
<button class="toProjectDesc"><h1 class="project__title"><span class="project__title--ref"><?= $page->ref() ?></span><?= $page->title() ?></h1></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
|
||||
<script>
|
||||
let mySwiper = new Swiper('.swiper-container', {
|
||||
// Optional parameters
|
||||
direction: 'horizontal',
|
||||
loop: true,
|
||||
observer: true,
|
||||
observeSlideChildren: true,
|
||||
observeParents: true,
|
||||
speed: 300,
|
||||
autoplay: {
|
||||
delay: 2000
|
||||
},
|
||||
|
||||
// Responsive
|
||||
breakpoints: {
|
||||
800: {
|
||||
speed: 500,
|
||||
autoplay: false
|
||||
}
|
||||
},
|
||||
|
||||
// Navigation arrows
|
||||
navigation: {
|
||||
nextEl: '.swiper-button-next',
|
||||
prevEl: '.swiper-button-prev'
|
||||
},
|
||||
|
||||
// Keyboard control
|
||||
keyboard: {
|
||||
enabled: true
|
||||
}
|
||||
})
|
||||
|
||||
document.querySelector('.views__btn--close').addEventListener('click', () => {
|
||||
document.location.replace('<?= $site->url() ?>')
|
||||
})
|
||||
document.querySelector('.toProjectDesc').addEventListener('click', () => {
|
||||
mySwiper.slideTo(document.querySelectorAll('.swiper-slide').length - 2)
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue