From 58d8b522f6e15904098f130259915150291fcf00 Mon Sep 17 00:00:00 2001 From: Gagafeee <64372089+Gagafeee@users.noreply.github.com> Date: Wed, 31 Aug 2022 10:19:31 +0200 Subject: [PATCH] depault --- .vscode/sftp.json | 11 +++ .../views/components/public/header.blade.php | 83 +++++++++++++++++++ resources/views/home.blade.php | 72 ++++++++++++++++ resources/views/layouts/layouts.blade.php | 25 ++++++ routes/web.php | 5 ++ 5 files changed, 196 insertions(+) create mode 100644 .vscode/sftp.json create mode 100644 resources/views/components/public/header.blade.php create mode 100644 resources/views/home.blade.php create mode 100644 resources/views/layouts/layouts.blade.php diff --git a/.vscode/sftp.json b/.vscode/sftp.json new file mode 100644 index 00000000..fabd5365 --- /dev/null +++ b/.vscode/sftp.json @@ -0,0 +1,11 @@ +{ + "name": "My Server", + "host": "217.160.44.115", + "protocol": "sftp", + "port": 22, + "username": "gagafeee", + "remotePath": "/home/gagafeee/sl-craft/www/public_html", + "uploadOnSave": true, + "useTempFile": false, + "openSsh": false +} diff --git a/resources/views/components/public/header.blade.php b/resources/views/components/public/header.blade.php new file mode 100644 index 00000000..cbf24fc6 --- /dev/null +++ b/resources/views/components/public/header.blade.php @@ -0,0 +1,83 @@ +<!-- Navbar --> +<div id="desktopNavbar" class="navbar"> + <!-- Cette partie est résrvée à l'affichage du profil utilisateur --> + <div class="upperPart"> + <nav class="container"> + <a class="nav-link" href="#">Se connecter</a> + </nav> + </div> + + <!-- Cette partie est résrvée à l'affichage des liens du site --> + <div class="lowerPart"> + <div class="container"> + <button id="mobileNavButton" type="button"> + <img src="{{ asset('/images/navbar/hamburger-icon.png') }}" alt="Menu"/> + </button> + <div class="siteLogo"> + <a href="{{ url('/') }}"> + <img src="{{ asset('/images/logo/large-blanc.svg') }}" alt="Logo"> + </a> + </div> + + <div class="desktopNavLinksContainer"> + <ul> + <li navLinkWithIcon="menu-buy"> + <a href="https://live.mc.sl-projects.com/" class="nav-link" target="_blank"> + <i class="nav-icon"> + <img src="{{ asset('/images/navbar/menu-buy.png') }}" alt="Join icon"> + </i> + Carte du monde + </a> + </li> + <li navLinkWithIcon="menu-comm"> + <a href="https://discord.gg/9PYvGFDmDt" class="nav-link" target="_blank"> + <i class="nav-icon"> + <img src="{{ asset('/images/navbar/menu-comm.svg') }}" alt="Community icon"> + </i> + Communauté + </a> + </li> + <li navLinkWithIcon="menu-store"> + <a href="{{ url('/') }}/shop" class="nav-link"> + <i class="nav-icon"> + <img src="{{ asset('/images/navbar/menu-store.svg') }}" alt="Community icon"> + </i> + Liste des magasins + </a> + </li> + <li navLinkWithIcon="menu-support"> + <a href="{{ url('/') }}/staff" class="nav-link"> + <i class="nav-icon"> + <img src="{{ asset('/images/navbar/menu-support.svg') }}" alt="Staff icon"> + </i> + Obtenir de l'aide + </a> + </li> + </ul> + </div> + </div> + </div> +</div> +<!-- Navbar --> + +@push('scripts') +<script type="text/javascript"> + // Ne doit s'exécuter que sur les pc + if(window.matchMedia("(min-width: 1024px)").matches){ + // Ici on va ajouter les évènements d'entrée et sortie de la souris sur les liens de la navbar + const navLinksWithIcon = document.querySelectorAll('[navLinkWithIcon]'); + + // On les parcours pour ajouter les évènements + navLinksWithIcon.forEach(function(navLinkWithIcon) { + navLinkWithIcon.addEventListener('mouseenter', function() { + navLinkWithIcon.getElementsByTagName('img')[0].src = + "{{ url('/') }}/images/navbar/" + navLinkWithIcon.getAttribute('navLinkWithIcon') + ".gif"; + }); + navLinkWithIcon.addEventListener('mouseleave', function() { + navLinkWithIcon.getElementsByTagName('img')[0].src = + "{{ url('/') }}/images/navbar/" + navLinkWithIcon.getAttribute('navLinkWithIcon') + "--reversed.gif"; + }); + }); + } +</script> +@endpush diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php new file mode 100644 index 00000000..36aba5cd --- /dev/null +++ b/resources/views/home.blade.php @@ -0,0 +1,72 @@ +@extends('layouts.layouts') + +@section('head') + <link rel="icon" type="image/svg+xml" href="{{ asset('/images/logo/favicon-blanc.svg') }}"> + <link rel="alternate icon" href="{{ asset('/images/logo/favicon-blanc.ico') }}"> + <link rel="mask-icon" href="{{ asset('/images/logo/favicon-blanc.svg') }}" color="#{{ config('app.meta_color') }}"> + <meta content="{{ config('app.name') }}" property="og:title" /> + <meta content="Rejoins-nous et découvre une communauté construite autour de l’amour pour la survie ! Récolte des + ressources, vend les ou achètes-en pour toi aussi créer ton propre village!" property="og:description" /> + <meta content="{{ url('/') }}" property="og:url" /> + <meta content="{{ asset('/images/logo/favicon-color.png') }}" property="og:image" /> + <meta content="{{ config('app.meta_color') }}" name="theme-color"/> +@endsection + + + +@section('body') + <x-public.header></x-public.header> + + {{-- Je met la balise script ici car si je l'intègre avec un @push('scripts'), son insertion sur la page sera + retardé. Cela résultera en une exécution retardée d'une à deux secondes sur la vitrine -> ça se voit avec les + redimensionnements et la lecture vidéo. --}} + <script type="text/javascript"> + // Constantes + const websiteUrl = "{{ url('/') }}/"; + const vitrineIntroVideo = document.getElementById("vitrineIntroVideo"); + const introContainer = document.getElementsByClassName("intro-container")[0]; + const vitrineIntro = document.getElementsByClassName("vitrine-intro")[0]; + const vitrineBackgroundVideo = document.getElementById("vitrineBackgroundVideo"); + const introBackgroundTransition = document.getElementById("introBackgroundTransition"); + + // On va regarder la correspondance en Média Query de l'écran pour afficher la vidéo appropriée + window.mobileAndTabletCheck = function () { + let check = false; + (function (a) { + if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; + })(navigator.userAgent || navigator.vendor || window.opera); + return check; + }; + + const isMobileOrTablet = window.mobileAndTabletCheck(); + const screenWithouDPI = window.screen.width * window.devicePixelRatio; + + if((isMobileOrTablet && window.matchMedia("(min-width: 2500px)").matches) || (!isMobileOrTablet && screenWithouDPI > 2500)){ + vitrineIntroVideo.src = websiteUrl+"videos/1440p-h264-crf30.mp4"; + }else if((isMobileOrTablet && window.matchMedia("(min-width: 1900px)").matches) || (!isMobileOrTablet && screenWithouDPI > 1900)){ + vitrineIntroVideo.src = websiteUrl+"videos/1080p-h264-crf30.mp4"; + }else{ + vitrineIntroVideo.src = websiteUrl+"videos/720p-h264-crf30.mp4"; + } + vitrineIntroVideo.play(); + + // Cette fonction se charge d'adapter le contenu de la page selon la dimension de l'écran + function vitrineCssMediaQueries(){ + // On redimensionne le container de la vitrine pour qu'il match parfaitement bien avec la hauteur de l'écran + // vitrineIntro.style.height = "-webkit-fill-available"; + introContainer.style.height = window.innerHeight - document.getElementsByClassName("navbar")[0].offsetHeight + "px"; + vitrineBackgroundVideo.style.height = vitrineIntro.offsetHeight + introBackgroundTransition.offsetHeight + "px"; + let dev = document.getElementById("dev"); + + vitrineBackgroundVideo.style.top = document.getElementsByClassName("navbar")[0].offsetHeight + "px"; + } + // On l'éxecute une fois pour initialiser la page + vitrineCssMediaQueries(); + + // Et on ajoute l'event pour que ça s'éxécute à chaque fois que la fenêtre change de taille + // Ne doit pas s'appliquer aux appareils mobiles en raison de l'entète du navigateur + if(!isMobileOrTablet){ + window.addEventListener('resize', vitrineCssMediaQueries); + } + </script> +@endsection diff --git a/resources/views/layouts/layouts.blade.php b/resources/views/layouts/layouts.blade.php new file mode 100644 index 00000000..2da95e27 --- /dev/null +++ b/resources/views/layouts/layouts.blade.php @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html lang="fr"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title> + @hasSection('title') + @yield('title') - {{ config('app.name') }} + @else + {{ config('app.name') }} + @endif + </title> + @yield('head') + <link href="{{ mix('/css/app.css') }}" rel="stylesheet" /> +</head> +<body> + + @yield('body') + + @yield('footer') + + <script src="{{ mix('/js/app.js') }}"></script> + <script src="{{ mix('/js/fontawesome/all.js') }}"></script> + @stack('scripts') +</html> diff --git a/routes/web.php b/routes/web.php index 9a4ada19..9e2c0904 100644 --- a/routes/web.php +++ b/routes/web.php @@ -16,3 +16,8 @@ Route::get('/', function () { return view('vitrine'); }); + +Route::get('/home', function () { + return view('home'); +}); + -- GitLab