This commit is contained in:
afornerot 2024-10-29 21:15:16 +01:00
parent 448d2f2b7e
commit d73127b09e
6 changed files with 180 additions and 129 deletions

View File

@ -360,8 +360,10 @@ th.dt-center, td.dt-center { text-align: center; }
} }
} }
.grid-sizer { width: 10%; margin-bottom: 0%;float:left;} .grid-sizer { width: 5%; margin-bottom: 0%;float:left;}
.grid-item-size { width: 10%; margin-bottom: 0%;float:left;} .grid-item-size { width: 10%; margin-bottom: 0%;float:left;}
.grid-item-size-1 { width: 10%; margin-bottom: 0%;float:left;}
.grid-item-size-15 { width: 15%; margin-bottom: 0%;float:left;}
.grid-item-size-2 { width: 20%; margin-bottom: 0%;float:left;} .grid-item-size-2 { width: 20%; margin-bottom: 0%;float:left;}
.grid-item-size-3 { width: 30%; margin-bottom: 0%;float:left;} .grid-item-size-3 { width: 30%; margin-bottom: 0%;float:left;}
.grid-item-size-4 { width: 40%; margin-bottom: 0%;float:left;} .grid-item-size-4 { width: 40%; margin-bottom: 0%;float:left;}
@ -373,7 +375,7 @@ th.dt-center, td.dt-center { text-align: center; }
.grid-item-full { width: 100%; margin-bottom: 0%; font-size:20px;float:left; } .grid-item-full { width: 100%; margin-bottom: 0%; font-size:20px;float:left; }
.grid-item-full h1 {margin: 0; border:none; padding: 20px 0px 0px 10px; } .grid-item-full h1 {margin: 0; border:none; padding: 20px 0px 0px 10px; }
.gutter-sizer { width: 0%;float:left; } .gutter-sizer { width: 0%;float:left; }
.member{display:flex; flex-direction: column; align-items: center;} .member{display:flex; flex-direction: column; align-items: center; background-color: var(--colorbgbodydarkdarker); border-radius:10px; padding:10px;}
.member img{border-radius:100%;width:60px; height: 60px;} .member img{border-radius:100%;width:60px; height: 60px;}
@media (max-width: 980px) { @media (max-width: 980px) {
.grid-sizer { width: 10%; margin-bottom: 0%;} .grid-sizer { width: 10%; margin-bottom: 0%;}

View File

@ -14,7 +14,7 @@ class HomeController extends AbstractController
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$users = $em->getRepository("App:User")->findBy([],["pseudo"=>"ASC"]); $users = $em->getRepository("App:User")->findBy([],["pseudo"=>"ASC"]);
$illustrations = $em->getRepository("App:Illustration")->findAll(); $illustrations = $em->getRepository("App:Illustration")->findBy([],["submittime"=>"DESC"]);
$links = $em->getRepository("App:Link")->findBy(["user"=>null]); $links = $em->getRepository("App:Link")->findBy(["user"=>null]);
$webzines = $em->getRepository("App:Webzine")->findBy(["user"=>null], ['set' => 'ASC', 'order' => 'ASC']); $webzines = $em->getRepository("App:Webzine")->findBy(["user"=>null], ['set' => 'ASC', 'order' => 'ASC']);

View File

@ -73,7 +73,7 @@ class Category
/** /**
* @ORM\OneToMany(targetEntity="Illustration", mappedBy="category", cascade={"persist", "remove"}, orphanRemoval=true) * @ORM\OneToMany(targetEntity="Illustration", mappedBy="category", cascade={"persist", "remove"}, orphanRemoval=true)
* @ORM\OrderBy({"id" = "DESC"}) * @ORM\OrderBy({"submittime" = "DESC"})
*/ */
private $illustrations; private $illustrations;

View File

@ -21,5 +21,31 @@
foreach($configs as $config) { foreach($configs as $config) {
$this->session->set($config->getKeyid(), strval($config->getValue())); $this->session->set($config->getKeyid(), strval($config->getValue()));
} }
$this->session->set("colorbgbodydarkdarker",$this->adjustBrightness($this->session->get("colorbgbodydark"),-20));
} }
public function adjustBrightness($hex, $steps) {
// Steps should be between -255 and 255. Negative = darker, positive = lighter
$steps = max(-255, min(255, $steps));
// Normalize into a six character long hex string
$hex = str_replace('#', '', $hex);
if (strlen($hex) == 3) {
$hex = str_repeat(substr($hex,0,1), 2).str_repeat(substr($hex,1,1), 2).str_repeat(substr($hex,2,1), 2);
}
// Split into three parts: R, G and B
$color_parts = str_split($hex, 2);
$return = '';
foreach ($color_parts as $color) {
$color = hexdec($color); // Convert to decimal
$color = max(0,min(255,$color + $steps)); // Adjust color
$return .= str_pad(dechex($color), 2, '0', STR_PAD_LEFT); // Make two char hex code
}
return "#".$return;
}
} }

View File

@ -29,47 +29,55 @@
{% block body %} {% block body %}
<!-- FOLIOMENU -----------------------------------------------------------------------------------------------------------------------------------------------!--> <!-- FOLIOMENU -----------------------------------------------------------------------------------------------------------------------------------------------!-->
<div class="foliomenu">
<a href="#top"><img src="{{ asset("uploads/logo/"~app.session.get("logodark")) }}" class="logo"></a>
<div class="foliomenu"> <div>
<a href="#top"><img src="/{{ appAlias }}/uploads/logo/{{ app.session.get("logodark") }}" class="logo"></a> {% if users is not empty %}
<i class="fa fa-circle fa-fw"></i> <a href="#membre">Membres</a>&nbsp;
<div>
<i class="fa fa-circle fa-fw"></i> <a href="#membre">Membres</a>&nbsp;
<i class="fa fa-circle fa-fw"></i> <a href="#illustration">Illustrations</a>&nbsp;
{% if not webzines is empty %}
<i class="fa fa-circle fa-fw"></i> <a href="#webzine">Webzines</a>&nbsp;
{% endif %}
<i class="fa fa-circle fa-fw"></i> <a href="#link">Liens</a>&nbsp;
</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') %}
<a href={{ path("app_illustration") }} class="btn btn-link" title="Configuration">
<i class="fa fa-cog fa-fw"></i>
</a>
<a href={{ path("app_illustration_submit") }} class="btn btn-link" title="Créer une Illustration">
<i class="fa fa-paint-brush fa-fw"></i>
</a>
{% endif %} {% endif %}
<a href={{ path("app_logout") }} class="btn btn-link" title="Déconnexion">
<i class="fa fa-sign-out-alt fa-fw"></i>
</a>
{% else %}
<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"> {% if illustrations is not empty %}
<a href="#top"><i class="fa fa-chevron-up"></i></a> <i class="fa fa-circle fa-fw"></i> <a href="#illustration">Illustrations</a>&nbsp;
</div> {% endif %}
{% if not webzines is empty %}
<i class="fa fa-circle fa-fw"></i> <a href="#webzine">Webzines</a>&nbsp;
{% endif %}
{% if not links is empty %}
<i class="fa fa-circle fa-fw"></i> <a href="#link">Liens</a>&nbsp;
{% endif %}
</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') %}
<a href={{ path("app_illustration") }} class="btn btn-link" title="Configuration">
<i class="fa fa-cog fa-fw"></i>
</a>
<a href={{ path("app_illustration_submit") }} class="btn btn-link" title="Créer une Illustration">
<i class="fa fa-paint-brush fa-fw"></i>
</a>
{% endif %}
<a href={{ path("app_logout") }} class="btn btn-link" title="Déconnexion">
<i class="fa fa-sign-out-alt fa-fw"></i>
</a>
{% else %}
<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 ------------------------------------------------------------------------------------------------------------------------------------------------!--> <!-- HEROHEADER ------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div id="top" class="heroheader" displaynone> <div id="top" class="heroheader" displaynone>
@ -117,9 +125,11 @@
</a> </a>
{% endif %} {% endif %}
</div> </div>
<div class="herobox"></div> <div class="herobox"></div>
<div class="herotitle"> <div class="herotitle">
<h1>{{ (app.session.get("appname")) }}</h1> <h1><a href="#site">{{ (app.session.get("appname")) }}</a></h1>
<div class="heromenu" > <div class="heromenu" >
{% if not app.session.get("appsubname") is empty %} {% if not app.session.get("appsubname") is empty %}
@ -149,8 +159,13 @@
</div> </div>
<div class="catmenu"> <div class="catmenu">
<a href="#membre"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Membres</a><br> {% if not users is empty %}
<a href="#illustration"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Illustrations</a><br> <a href="#membre"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Membres</a><br>
{% endif %}
{% if not illustrations is empty %}
<a href="#illustration"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Illustrations</a><br>
{% endif %}
{% if not webzines is empty %} {% if not webzines is empty %}
<a href="#webzine"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Webzines</a><br> <a href="#webzine"><i class="fa fa-arrow-circle-right fa-fw facatmenu"></i> Webzines</a><br>
@ -179,7 +194,9 @@
<!-- SITE ------------------------------------------------------------------------------------------------------------------------------------------------------!--> <!-- SITE ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div> <div>
<div id="site" 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/{{ app.session.get("imgcontact")}});"> <div id="site" class="grid-item grid-item-full"><h1 class="mt-5 mb-3"></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/{{ app.session.get("imgcontact")}});">
</div> </div>
<div class="grid-item grid-item-size grid-item-size-6 grid-item-size-noresize" style="padding:0px 15px;"> <div class="grid-item grid-item-size grid-item-size-6 grid-item-size-noresize" style="padding:0px 15px;">
@ -219,103 +236,107 @@
</div> </div>
<!-- MEMBRE ------------------------------------------------------------------------------------------------------------------------------------------------------!--> <!-- MEMBRE ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div> {% if not users is empty %}
<div id="membre" class="grid-item grid-item-full"><h1 class="mt-5 mb-3">Membres</h1></div> <div>
<div id="membre" class="grid-item grid-item-full"><h1 class="mt-5 mb-3">Membres</h1></div>
{% for user in users %}
<div class="grid-item grid-item-size grid-item-size-2 grid-item-size-small-3 grid-item-size-noresize" style="padding:0px 15px;"> {% for user in users %}
<a class="member" href="{{path("app_home_user",{userpseudo:user.slug})}}"> <div class="grid-item grid-item-size grid-item-size-15 grid-item-size-small-3 grid-item-size-noresize" style="padding:0px 5px;">
<img src="/{{ appAlias }}/uploads/avatar/{{ user.avatar }}"> <a class="member" href="{{path("app_home_user",{userpseudo:user.slug})}}">
{{user.pseudo}} <img src="/{{ appAlias }}/uploads/avatar/{{ user.avatar }}" class="mb-2">
</a> <small>{{user.pseudo}}</small>
</div> </a>
{% endfor %} </div>
</div> {% endfor %}
</div>
{% endif %}
<!-- ILLUSTRATION ------------------------------------------------------------------------------------------------------------------------------------------------------!--> <!-- ILLUSTRATION ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div> {% if not illustrations is empty %}
<div id="illustration" class="grid-item grid-item-full"><h1 class="mt-5">Illustrations</h1></div> <div>
<div id="illustration" class="grid-item grid-item-full"><h1 class="mt-5 mb-3">Illustrations</h1></div>
{% for illustration in illustrations %} {% for illustration in illustrations %}
{% set appthumbwidth=app.session.get("appthumbwidth") %} {% set appthumbwidth=app.session.get("appthumbwidth") %}
{% set appthumbheight=app.session.get("appthumbheight") %} {% set appthumbheight=app.session.get("appthumbheight") %}
{% if appthumbwidth==0 %} {% if appthumbwidth==0 %}
{% set class="" %} {% set class="" %}
{% if loop.index < 40 %} {% if loop.index < 40 %}
{% if loop.index == 1 %} {% if loop.index == 1 %}
{% set class="grid-item-size-4" %} {% set class="grid-item-size-4" %}
{% elseif loop.index is divisible by(28) %} {% elseif loop.index is divisible by(28) %}
{% set class="grid-item-size-4" %} {% set class="grid-item-size-4" %}
{% elseif loop.index is divisible by(7) %} {% elseif loop.index is divisible by(7) %}
{% set class="grid-item-size-2" %} {% set class="grid-item-size-2" %}
{% elseif loop.index is divisible by(46) %} {% elseif loop.index is divisible by(46) %}
{% set class="grid-item-size-4" %} {% set class="grid-item-size-4" %}
{% endif %} {% endif %}
{% elseif loop.index > 48 %} {% elseif loop.index > 48 %}
{% if loop.index == 49 %} {% if loop.index == 49 %}
{% set class="grid-item-size-4" %} {% set class="grid-item-size-4" %}
{% elseif (loop.index-49) is divisible by(28) %} {% elseif (loop.index-49) is divisible by(28) %}
{% set class="grid-item-size-4" %} {% set class="grid-item-size-4" %}
{% elseif (loop.index-49) is divisible by(7) %} {% elseif (loop.index-49) is divisible by(7) %}
{% set class="grid-item-size-2" %} {% set class="grid-item-size-2" %}
{% endif %}
{% endif %} {% endif %}
{% elseif appthumbwidth==1 %} {% set class="" %}
{% elseif appthumbwidth==2 %} {% set class="grid-item-size-2" %}
{% endif %} {% endif %}
{% elseif appthumbwidth==1 %} {% set class="" %}
{% elseif appthumbwidth==2 %} {% set class="grid-item-size-2" %}
{% endif %}
{%if appthumbheight==0 %} {%if appthumbheight==0 %}
{% set class=class~" grid-item-size-square" %} {% set class=class~" grid-item-size-square" %}
{% elseif appthumbheight==1 %} {% elseif appthumbheight==1 %}
{% set class=class~" grid-item-size-proportion" %} {% set class=class~" grid-item-size-proportion" %}
{% else %} {% else %}
{% set class=class~" grid-item-size-page" %} {% set class=class~" grid-item-size-page" %}
{% endif %} {% endif %}
{% set source="thumb_"~illustration.illustration %} {% set source="thumb_"~illustration.illustration %}
{% if appthumbheight!=0 %} {% if appthumbheight!=0 %}
{% set source="thumbori_"~illustration.illustration %} {% set source="thumbori_"~illustration.illustration %}
{% endif %} {% endif %}
<a href="{{ path("app_illustration_view",{"idcat":illustration.category.id,"id":illustration.id}) }}"> <a href="{{ path("app_illustration_view",{"idcat":illustration.category.id,"id":illustration.id}) }}">
<div id="illustration{{illustration.id}}" class="grid-item grid-item-size {{class}} cssfilter no-cache-bg" 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}}");"> <div id="illustration{{illustration.id}}" class="grid-item grid-item-size {{class}} cssfilter no-cache-bg" 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}}");">
</div> </div>
</a> </a>
{% endfor %} {% endfor %}
</div> </div>
{% endif %}
<!-- WEBZINE ------------------------------------------------------------------------------------------------------------------------------------------------------!--> <!-- WEBZINE ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div> {% if not webzines is empty %}
{% if not webzines is empty %} <div>
<div id="webzine" class="grid-item grid-item-full"><h1 class="mt-5">Webzines</h1></div> <div id="webzine" class="grid-item grid-item-full"><h1 class="mt-5 mb-3">Webzines</h1></div>
{% endif %}
{% set setname="" %} {% set setname="" %}
{% for webzine in webzines %} {% for webzine in webzines %}
{% if not webzine.webzinepages is empty %} {% if not webzine.webzinepages is empty %}
{% if setname!=webzine.set %} {% if setname!=webzine.set %}
{% if not webzine.set is empty %} {% 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> <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 %} {% endif %}
{% set setname=webzine.set %} {% set page=webzine.webzinepages[0] %}
{% endif %} {% set source="thumbori_"~page.illustration %}
{% set page=webzine.webzinepages[0] %} {% set class=" grid-item-size-2 grid-item-size-page" %}
{% set source="thumbori_"~page.illustration %}
{% set class=" grid-item-size-2 grid-item-size-page" %}
<a href="{{ path("app_webzine_view",{"idcat":webzine.id,"id":page.id}) }}"> <a href="{{ path("app_webzine_view",{"idcat":webzine.id,"id":page.id}) }}">
<div id="webzine{{webzine.id}}" class="grid-item grid-item-size {{class}} cssfilter no-cache-bg" 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}}");"> <div id="webzine{{webzine.id}}" class="grid-item grid-item-size {{class}} cssfilter no-cache-bg" 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}}");">
</div> </div>
</a> </a>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
{% endif %}
<!-- LINK ------------------------------------------------------------------------------------------------------------------------------------------------------!--> <!-- LINK ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div> {% if not links is empty %}
{% if not webzines is empty %} <div>
<div id="link" class="grid-item grid-item-full"><h1 class="mt-5">Liens</h1></div> <div id="link" class="grid-item grid-item-full"><h1 class="mt-5 mb-3">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/{{ app.session.get("imglink")}});"> <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/{{ app.session.get("imglink")}});">
</div> </div>
@ -325,9 +346,10 @@
<a href="{{link.url}}" target="_blank">{{ link.name }}</a> <a href="{{link.url}}" target="_blank">{{ link.name }}</a>
{% endfor %} {% endfor %}
</div> </div>
{% endif %} </div>
</div> {% endif %}
<!-- BOTTOM ------------------------------------------------------------------------------------------------------------------------------------------------------!-->
<div id="bottom" class="grid-item grid-item-full" style="height:300px"> <div id="bottom" class="grid-item grid-item-full" style="height:300px">
</div> </div>

View File

@ -1,6 +1,7 @@
:root{ :root{
--colorbgbodylight: {{ app.session.get('colorbgbodylight')|raw }}; --colorbgbodylight: {{ app.session.get('colorbgbodylight')|raw }};
--colorbgbodydark: {{ app.session.get('colorbgbodydark')|raw }}; --colorbgbodydark: {{ app.session.get('colorbgbodydark')|raw }};
--colorbgbodydarkdarker: {{ app.session.get('colorbgbodydarkdarker')|raw }};
--colorfttitlelight: {{ app.session.get('colorfttitlelight')|raw }}; --colorfttitlelight: {{ app.session.get('colorfttitlelight')|raw }};
--colorfttitledark: {{ app.session.get('colorfttitledark')|raw }}; --colorfttitledark: {{ app.session.get('colorfttitledark')|raw }};
--colorftbodylight: {{ app.session.get('colorftbodylight')|raw }}; --colorftbodylight: {{ app.session.get('colorftbodylight')|raw }};