2024-10-26 12:08:33 +02:00
{% extends "base.html.twig" %}
{% block localstyle %}
#main {
padding: 0px;
display:none;
margin-bottom:200px;
}
{% if app .session .get ( "appthumbfilter" ) == "1" %}
.cssfilter {
filter: grayscale( {{ app .session .get ( "appthumbfiltergrayscale" ) }} %) opacity( {{ app .session .get ( "appthumbfilteropacity" ) }} %) sepia( {{ app .session .get ( "appthumbfiltersepia" ) }} %);
transition: -webkit-filter 0.1s;
}
.cssfilter:hover {
filter: unset;
-webkit-filter: unset;
-moz-filter: unset;
-o-filter: unset;
-ms-filter: unset;
-webkit-transition: -webkit-filter 0.1s;
transition: -webkit-filter 0.1s;
}
{% endif %}
{% for category in categorys | sort ( ( a , b ) = > a .order <= > b .order ) %}
{% if category .usecategoryconfig and category .appthumbfilter %}
.cssfilter- {{ category .id }} {
filter: grayscale( {{ category .appthumbfiltergrayscale }} %) opacity( {{ category .appthumbfilteropacity }} %) sepia( {{ category .appthumbfiltersepia }} %);
transition: -webkit-filter 0.1s;
}
.cssfilter- {{ category .id }} :hover {
filter: unset;
-webkit-filter: unset;
-moz-filter: unset;
-o-filter: unset;
-ms-filter: unset;
-webkit-transition: -webkit-filter 0.1s;
transition: -webkit-filter 0.1s;
}
{% endif %}
{% endfor %}
{% endblock %}
{% block body %}
<!-- FOLIOMENU -----------------------------------------------------------------------------------------------------------------------------------------------!-->
<div class="foliomenu">
<a href="#top"><img src="/ {{ appAlias }} /uploads/avatar/ {{ user .avatar }} " class="logo"></a>
<div>
<i class="fa fa-circle fa-fw"></i> <a href=" {{ path ( "app_home" ) }} ">Accueil</a>
{% for category in categorys | sort ( ( a , b ) = > a .order <= > b .order ) %}
{% if not category .illustrations is empty %}
<i class="fa fa-circle fa-fw"></i> <a href="# {{ category .name }} "> {{ category .name }} </a>
{% endif %}
{% endfor %}
{% if not webzines is empty %}
<i class="fa fa-circle fa-fw"></i> <a href="#webzine">Webzines</a>
{% endif %}
<i class="fa fa-circle fa-fw"></i> <a href="#link">Liens</a>
<i class="fa fa-circle fa-fw"></i> <a href="#contact">Contact</a>
</div>
<div class="float-right">
{% if app .user %}
<a href=" {{ path ( "app_user_profil" ) }} ">
<img src=" {{ app .user .avatar | urlavatar }} " class="avatar">
</a>
{% if is_granted ( 'ROLE_ADMIN' ) %}
2024-10-30 17:58:39 +01:00
<a href= {{ path ( "app_admin" ) }} class="btn btn-link" title="Configuration">
2024-10-26 12:08:33 +02:00
<i class="fa fa-cog fa-fw"></i>
</a>
{% endif %}
2024-10-30 22:06:14 +01:00
<a href="" data-toggle="modal" class="btn btn-link" title="Ajouter" data-target="#addmodal">
<i class="fa fa-plus fa-fw"></i>
</a>
<a href= {{ path ( "app_logout" ) }} class="btn btn-link" title="Déconnexion">
<i class="fa fa-sign-out-alt fa-fw"></i>
</a>
2024-10-26 12:08:33 +02:00
{% else %}
2024-11-03 10:12:33 +01:00
{% if ( appNinegateurl and appNinegatemoderegistration != "none" ) %}
<a href=" {{ appNinegateurl }} /registration?redirect= {{ app .request .uri }} " class="btn btn-link" title="Inscription">
<i class="fa fa-user-plus fa-fw"></i>
</a>
{% endif %}
2024-10-26 12:08:33 +02:00
<a href= {{ path ( "app_login" ) }} class="btn btn-link" title="Connexion">
<i class="fa fa-sign-in-alt fa-fw"></i>
</a>
{% endif %}
</div>
</div>
<div class="foliotop">
<a href="#top"><i class="fa fa-chevron-up"></i></a>
</div>
<!-- HEROHEADER ------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div id="top" class="heroheader" displaynone>
{% if not config .hero01 is empty %}
<div class="cssfilter" style="background-image:url(/ {{ appAlias }} /uploads/hero/ {{ config .hero01 }} )"></div>
{% endif %}
{% if not config .hero02 is empty %}
<div class="cssfilter" style="background-image:url(/ {{ appAlias }} /uploads/hero/ {{ config .hero02 }} )"></div>
{% endif %}
{% if not config .hero03 is empty %}
<div class="cssfilter" style="background-image:url(/ {{ appAlias }} /uploads/hero/ {{ config .hero03 }} )"></div>
{% endif %}
{% if not config .hero04 is empty %}
<div class="cssfilter" style="background-image:url(/ {{ appAlias }} /uploads/hero/ {{ config .hero04 }} )"></div>
{% endif %}
{% if not config .hero05 is empty %}
<div class="cssfilter" style="background-image:url(/ {{ appAlias }} /uploads/hero/ {{ config .hero05 }} )"></div>
{% endif %}
</div>
<div class="herofloatmenu" style="position: absolute; top: 0px; right: 10px;">
{% if app .user %}
<a href=" {{ path ( "app_user_profil" ) }} ">
<img src=" {{ app .user .avatar | urlavatar }} " class="avatar">
</a>
{% if is_granted ( 'ROLE_ADMIN' ) %}
2024-10-30 17:58:39 +01:00
<a href= {{ path ( "app_admin" ) }} class="btn btn-link" title="Configuration">
2024-10-26 12:08:33 +02:00
<i class="fa fa-cog fa-fw"></i>
</a>
{% endif %}
2024-10-30 22:06:14 +01:00
<a href="" data-toggle="modal" class="btn btn-link" title="Ajouter" data-target="#addmodal">
<i class="fa fa-plus fa-fw"></i>
</a>
<a href= {{ path ( "app_logout" ) }} class="btn btn-link" title="Déconnexion">
<i class="fa fa-sign-out-alt fa-fw"></i>
</a>
2024-10-26 12:08:33 +02:00
{% else %}
2024-11-03 10:12:33 +01:00
{% if ( appNinegateurl and appNinegatemoderegistration != "none" ) %}
<a href=" {{ appNinegateurl }} /registration?redirect= {{ app .request .uri }} " class="btn btn-link" title="Inscription">
<i class="fa fa-user-plus fa-fw"></i>
</a>
{% endif %}
2024-10-26 12:08:33 +02:00
<a href= {{ path ( "app_login" ) }} class="btn btn-link" title="Connexion">
<i class="fa fa-sign-in-alt fa-fw"></i>
</a>
{% endif %}
</div>
<div class="herobox"></div>
<div class="herotitle">
<h1 style="text-transform:uppercase"> {{ ( user .pseudo ? user .pseudo : user .displayname ) }} </h1>
<div class="heromenu" >
{% if not config .appsubname is empty %}
<i style="font-size:80%;"> {{ config .appsubname }} </i><br>
{% endif %}
<div class="linkmenu" style="clear:both">
{% if user .email is not empty %}
<a href="mailto: {{ user .email }} " target="_blank" title="Email"><i class="fas fa-envelope fa-2x"></i></a>
{% endif %}
{% if config .facebook is not empty %}
<a href=" {{ config .facebook }} " target="_blank" title="Facebook"><i class="fab fa-facebook fa-2x"></i></a>
{% endif %}
{% if config .instagram is not empty %}
<a href=" {{ config .instagram }} " target="_blank" title="Instagram"><i class="fab fa-instagram fa-2x"></i></a>
{% endif %}
{% if config .twitter is not empty %}
<a href=" {{ config .twitter }} " target="_blank" title="Twitter"><i class="fab fa-twitter fa-2x"></i></a>
{% endif %}
{% if config .google is not empty %}
<a href=" {{ config .google }} " target="_blank" title="Google"><i class="fab fa-google-plus fa-2x"></i></a>
{% endif %}
{% if config .youtube is not empty %}
<a href=" {{ config .youtube }} " target="_blank" title="Youtube"><i class="fab fa-youtube fa-2x"></i></a>
{% endif %}
2024-11-03 14:47:30 +01:00
<a href=" {{ path ( "app_feeduser" , { userpseudo : user .slug } ) }} " target="_blank" title="RSS"><i class="fa fa-rss-square fa-2x"></i></a>
2024-11-03 18:39:00 +01:00
<a href=" {{ path ( "app_slide" , { userpseudo : user .slug } ) }} " target="_blank" title="Slide show"><i class="ml-1 fa fa-play fa-2x"></i></a>
2024-10-26 12:08:33 +02:00
</div>
<div class="catmenu">
<a href=" {{ path ( "app_home" ) }} "><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Accueil</a><br>
{% for category in categorys | sort ( ( a , b ) = > a .order <= > b .order ) %}
{% if not category .illustrations is empty %}
<a href="# {{ category .name }} "><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> {{ category .name }} </a><br>
{% endif %}
{% endfor %}
{% if not webzines is empty %}
<a href="#webzine"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Webzines</a><br>
{% endif %}
{% if not links is empty %}
<a href="#link"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Liens</a><br>
{% endif %}
<a href="#contact"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Contact</a><br>
</div>
</div>
</div>
<div class="herologo">
<img src="/ {{ appAlias }} /uploads/avatar/ {{ user .avatar }} ">
</div>
<!-- GRID ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
{% set style = "margin:30px" %}
{% if app .session .get ( "appmaxthumbwidth" ) != "0" %}
{% set style = "max-width:" ~ app .session .get ( "appmaxthumbwidth" ) ~ "px; margin:30px auto;" %}
{% endif %}
<div class="grid" style=" {{ style }} ">
<div class="grid-sizer"></div>
<div class="gutter-sizer"></div>
{% for category in categorys | sort ( ( a , b ) = > a .order <= > b .order ) %}
{% if not category .illustrations is empty %}
<div id=" {{ category .name }} " class="grid-item grid-item-full"><h1 class="mt-5"> {{ category .name }} </h1></div>
{% for illustration in category .illustrations %}
{% set appthumbwidth = app .session .get ( "appthumbwidth" ) %}
{% set appthumbheight = app .session .get ( "appthumbheight" ) %}
{% if category .usecategoryconfig %}
{% set appthumbwidth = category .appthumbwidth %}
{% set appthumbheight = category .appthumbheight %}
{% endif %}
2024-11-01 09:38:34 +01:00
{% set classmini = "" %}
2024-10-26 12:08:33 +02:00
{% if appthumbwidth == 0 %}
{% set class = "" %}
{% if loop .index < 4 0 %}
{% if loop .index == 1 %}
{% set class = "grid-item-size-4" %}
{% elseif loop .index is divisible by ( 2 8 ) %}
{% set class = "grid-item-size-4" %}
{% elseif loop .index is divisible by ( 7 ) %}
{% set class = "grid-item-size-2" %}
{% elseif loop .index is divisible by ( 4 6 ) %}
{% set class = "grid-item-size-4" %}
{% endif %}
{% elseif loop .index > 4 8 %}
{% if loop .index == 4 9 %}
{% set class = "grid-item-size-4" %}
{% elseif ( loop .index-49 ) is divisible by ( 2 8 ) %}
{% set class = "grid-item-size-4" %}
{% elseif ( loop .index-49 ) is divisible by ( 7 ) %}
{% set class = "grid-item-size-2" %}
{% endif %}
{% endif %}
2024-11-01 09:38:34 +01:00
2024-11-01 10:20:15 +01:00
{% if loop .index == 1 %}
{% set classmini = 'grid-item-mini-50' %}
{% elseif loop .index % 8 == 0 %}
2024-11-01 09:38:34 +01:00
{% set classmini = 'grid-item-mini-50' %}
{% else %}
{% set classmini = 'grid-item-mini-25' %}
2024-11-01 10:20:15 +01:00
{% endif %}
{% set position = ( loop .index - 1 ) % 1 0 + 1 %}
{% if position == 1 or position == 8 %}
{% set classmini = 'grid-item-mini-50' %}
{% else %}
{% set classmini = 'grid-item-mini-25' %}
{% endif %}
2024-10-26 12:08:33 +02:00
{% elseif appthumbwidth == 1 %} {% set class = "" %}
{% elseif appthumbwidth == 2 %} {% set class = "grid-item-size-2" %}
{% endif %}
{% if appthumbheight == 0 %}
{% set class = class ~ " grid-item-size-square" %}
{% elseif appthumbheight == 1 %}
{% set class = class ~ " grid-item-size-proportion" %}
{% else %}
{% set class = class ~ " grid-item-size-page" %}
{% endif %}
{% set source = "thumb_" ~ illustration .illustration %}
{% if appthumbheight != 0 %}
{% set source = "thumbori_" ~ illustration .illustration %}
{% endif %}
2024-11-02 15:43:47 +01:00
{% set source = source ~ "?" ~ illustration .updatetime | date ( 'ymdHis' ) %}
2024-10-26 12:08:33 +02:00
2024-10-30 17:58:39 +01:00
<a href=" {{ path ( "app_illustration_view" , { "by" :"user" , "idcat" : category .id , "id" : illustration .id } ) }} ">
2024-11-02 15:43:47 +01:00
<div id="illustration {{ illustration .id }} " class="grid-item grid-item-size {{ class }} {{ classmini }} cssfilter cssfilter- {{ category .id }} " data-width=" {{ illustration .width }} " data-background-image="/ {{ appAlias }} /uploads/illustration/ {{ source }} " data-height=" {{ illustration .height }} " style="height:auto;background-position: center ; background-size: cover; background-image: url(/ {{ appAlias }} /uploads/illustration/ {{ source }} ");">
2024-10-26 12:08:33 +02:00
</div>
</a>
{% endfor %}
{% endif %}
{% endfor %}
<!-- WEBZINE ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
{% if not webzines is empty %}
<div id="webzine" class="grid-item grid-item-full"><h1 class="mt-5">Webzines</h1></div>
{% endif %}
{% set setname = "" %}
{% for webzine in webzines %}
{% if not webzine .webzinepages is empty %}
{% if setname != webzine .set %}
{% if not webzine .set is empty %}
<div id="webzine" class="grid-item grid-item-full"><h2 class="mt-3 pl-3"> {{ webzine .set }} </h2></div>
{% endif %}
{% set setname = webzine .set %}
{% endif %}
{% set page = webzine .webzinepages [ 0 ] %}
{% set source = "thumbori_" ~ page .illustration %}
{% set class = " grid-item-size-2 grid-item-size-page" %}
2024-10-31 11:48:30 +01:00
<a href=" {{ path ( "app_webzine_view" , { "idcat" : webzine .id , "id" : page .id , "by" :"user" } ) }} ">
2024-11-02 15:43:47 +01:00
<div id="webzine {{ webzine .id }} " class="grid-item grid-item-size {{ class }} cssfilter" data-width=" {{ page .width }} " data-background-image="/ {{ appAlias }} /uploads/webzine/ {{ source }} " data-height=" {{ page .height }} " style="height:auto;background-position: center ; background-size: cover; background-image: url(/ {{ appAlias }} /uploads/webzine/ {{ source }} ");">
2024-10-26 12:08:33 +02:00
</div>
</a>
{% endif %}
{% endfor %}
<!-- LINK ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
{% if not links is empty %}
<div id="link" class="grid-item grid-item-full"><h1 class="mt-5">Liens</h1></div>
<div class="grid-item grid-item-size grid-item-size-3 grid-item-size-square cssfilter" style="height:200px;background-position: center; background-size: cover; background-image: url(/ {{ appAlias }} /uploads/image/ {{ config .imglink }} );">
</div>
<div class="grid-item grid-item-size grid-item-size-6 grid-item-size-noresize linkurl" style="padding:0px 15px;">
{% for link in links | sort ( ( a , b ) = > a .order <= > b .order ) %}
<a href=" {{ link .url }} " target="_blank"> {{ link .name }} </a>
{% endfor %}
</div>
{% endif %}
<!-- CONTACT ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div id="contact" class="grid-item grid-item-full"><h1 class="mt-5">Contact</h1></div>
<div class="grid-item grid-item-size grid-item-size-3 grid-item-size-square cssfilter" style="height:200px;background-position: center; background-size: cover; background-image: url(/ {{ appAlias }} /uploads/image/ {{ config .imgcontact }} );">
</div>
2024-11-01 09:38:34 +01:00
<div class="grid-item grid-item-size grid-item-size-6 grid-item-size-noresize" style="padding:0px 15px;word-break:break-word;">
2024-10-26 12:08:33 +02:00
<h3> {{ user .pseudo }} </h3>
{% if not config .appsubname is empty %}
{{ config .appsubname }} <br>
{% endif %}
2024-11-03 18:32:47 +01:00
2024-10-26 12:08:33 +02:00
{% if not config .appdescription is empty %}
<small><br> {{ config .appdescription | raw }} </small><br>
{% endif %}
2024-11-03 18:32:47 +01:00
{% if user .email is not empty or config .facebook is not empty or config .instagram is not empty or config .twitter is not empty or config .google is not empty or config .youtube is not empty %}
<br><br>
{% endif %}
2024-10-26 12:08:33 +02:00
{% if user .email is not empty %}
<i class="fas fa-envelope"></i> Email = <a href="mailto: {{ user .email }} " target="_blank" title="Email"> {{ user .email }} </a><br>
{% endif %}
{% if config .facebook is not empty %}
<i class="fab fa-facebook"></i> Facebook = <a href=" {{ config .facebook }} " target="_blank" title="Facebook"> {{ config .facebook }} </a><br>
{% endif %}
{% if config .instagram is not empty %}
<i class="fab fa-instagram"></i> Instagram = <a href=" {{ config .instagram }} " target="_blank" title="Instagram"> {{ config .instagram }} </a><br>
{% endif %}
{% if config .twitter is not empty %}
<i class="fab fa-twitter"></i> Twitter = <a href=" {{ config .twitter }} " target="_blank" title="Twitter"> {{ config .twitter }} </a><br>
{% endif %}
{% if config .google is not empty %}
<i class="fab fa-google-plus"></i> Google = <a href=" {{ config .google }} " target="_blank" title="Google"> {{ config .google }} </a><br>
{% endif %}
{% if config .youtube is not empty %}
<i class="fab fa-youtube"></i> Youtube = <a href=" {{ config .youtube }} " target="_blank" title="Youtube"> {{ config .youtube }} </a><br>
{% endif %}
2024-11-03 17:38:12 +01:00
</div>
<!-- BOTTOM ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div id="bottom" class="grid-item grid-item-full" style="height:300px;margin-top:60px;">
<div style="text-align:center">
{% set qrCode = qr_code_result ( absolute_url ( path ( "app_home_user" , { userpseudo : user .slug } ) ) ) %}
<img src=" {{ qrCode .dataUri }} " width="200px" />
</div>
2024-10-26 12:08:33 +02:00
</div>
</div>
2024-10-30 22:06:14 +01:00
<!-- ADDMODAL ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
2024-10-31 11:48:30 +01:00
{% if app .user %}
<div id="addmodal" class="modal" tabindex="-1" role="dialog" style="z-index:100000">
<div class="modal-dialog modal-md" role="document">
2024-11-01 10:54:38 +01:00
<div class="modal-content" style="margin-top:120px">
2024-10-31 11:48:30 +01:00
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body" style="display:flex; flex-direction: column;">
2024-11-01 10:54:38 +01:00
<a href= {{ path ( "app_illustration_submit" , { "by" :"user" , "userid" : app .user .id } ) }} class="btn btn-link" style="font-size:30px;" title="Créer une Illustration">
Ajouter une Illustration
2024-10-31 11:48:30 +01:00
</a>
2024-11-01 10:54:38 +01:00
<a href= {{ path ( "app_webzine_submit" , { "by" :"user" , "userid" : app .user .id } ) }} class="btn btn-link" style="font-size:30px;" title="Créer un Webzine">
2024-10-31 11:48:30 +01:00
Ajouter un Webzine
</a>
</div>
2024-10-30 22:06:14 +01:00
</div>
</div>
2024-11-01 10:54:38 +01:00
</div>
2024-10-31 11:48:30 +01:00
{% endif %}
2024-10-26 12:08:33 +02:00
{% endblock %}
{% block localjavascript %}
$(document).ready(function() {
$('body').imagesLoaded(function() {
height=Math.max(500,$(window).height());
$('.heroheader').height(height);
2024-10-28 22:37:24 +01:00
himg=$('.herologo img').height();
$('.herologo').css( { top: (height-himg-50) +'px' });
2024-10-26 12:08:33 +02:00
$('.heroheader').slick( {
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 6000,
dots: true,
touchMove: false,
pauseOnDotsHover: true,
fade: true,
cssEase: 'linear',
prevArrow: false,
nextArrow: false,
customPaging: function(slider, i) {
return '<span class="heroheader-dot fa fa-circle fa-fw"></span>';
}
});
$("#main").show();
resizeThumb();
$('.grid').masonry( {
columnWidth: '.grid-sizer',
gutter: '.gutter-sizer',
itemSelector: '.grid-item',
percentPosition: true,
horizontalOrder: false,
});
if (location.hash) {
console.log(location.hash);
$(document).scrollTop( $(location.hash).offset().top -60);
// = location.hash;
}
});
});
$(window).resize(function() {
$(window).scroll();
height=Math.max(500,$(window).height());
$('.heroheader').height(height);
2024-10-28 22:37:24 +01:00
himg=$('.herologo img').height();
$('.herologo').css( { top: (height-himg-50) +'px' });
2024-10-26 12:08:33 +02:00
resizeThumb();
2024-10-28 22:37:24 +01:00
});
2024-10-26 12:08:33 +02:00
$(window).scroll(function () {
if($(window).width()>=980) {
// set distance user needs to scroll before we start fadeIn
if ($(this).scrollTop() > 300) {
if($('.foliomenu').is(":hidden")) $('.foliomenu').show();
} else {
if($('.foliomenu').is(":visible")) $('.foliomenu').hide();
}
}
else {
if($('.foliomenu').is(":hidden")) $('.foliomenu').show();
}
if ($(this).scrollTop() > 300) {
if($('.foliotop').is(":hidden")) $('.foliotop').show();
} else {
if($('.foliotop').is(":visible")) $('.foliotop').hide();
}
});
function resizeThumb() {
{% if app .session .get ( "appmaxthumbwidth" ) != "0" %}
width=$(window).width();
maxwidth= {{ app .session .get ( "appmaxthumbwidth" ) }} ;
if(maxwidth+30>width) {
$(".grid").css("max-width","none");
$(".grid").css("margin","30px");
}
else {
$(".grid").css("max-width"," {{ app .session .get ( "appmaxthumbwidth" ) }} px");
$(".grid").css("margin","30px auto");
}
{% endif %}
$(".grid-item-size").each(function() {
if(!$(this).hasClass("grid-item-size-noresize")) {
if($(this).hasClass("grid-item-size-square")) {
$(this).height($(this).width());
}
else if($(this).hasClass("grid-item-size-proportion")) {
var width=$(this).width();
var oriwidth=$(this).data("width")
if(oriwidth>0) {
pourcentage=width*100/oriwidth;
height=$(this).data("height")*pourcentage/100;
$(this).height(height);
}
else {
$(this).height($(this).width());
}
}
else {
$(this).height($(this).width()*30/21);
}
}
});
}
{% endblock %}