Zobacz pełną wersję : Moduł STOPKA w pozycji footer
james.bien
18-09-2023, 11:05
W sekcji footer umieściłem 3 moduły własne: dane kontaktowe, dane adresowe, linki do stron.
Gdzie umieścić moduł STOPKA z informacjami o wersji Joomla, informacji o autorstwie? Jak ustawiam też na stopkę to wyświetla mi się obok w/w. Chciałbym, aby ta informacja była samodzielna (tak się chyba robi zgodnie ze sztuką), pod w/w modułami?
Czy da się to zrobić za pomocą modułu czy taką informację trzeba wtedy umieścić gdzieś w kodzie strony?
JB
zwiastun
18-09-2023, 14:01
Sekcja footer strony to najodpowiedniejsze miejsce (znacznik footer w kontekście strony obejmuje element(-y), który zawiera informacje o stronie (informacje o treści). A to, jak się moduł układa w stosunku do innych i jak się wyświetla, to tylko kwestia odpowiedniej stylizacji.
james.bien
18-09-2023, 15:25
Dzięki za odpowiedź.
Sekcja footer to najlepsze miejsce na informacje o stronie - jasne jak słońce. W moim planie jednak (może błędnym) chciałbym, aby moduły własne były obok siebie (1), a pod nimi jeden moduł (2) - właśnie z info o stronie i Joomla. W moim przypadku, żeby osiągnąć połowiczny efekt musiałbym albo zrezygnować z tych trzech modułów, albo ze stopki z info o stronie i Joomla. Brakuje mi pozycji footer-b na przykład. Wtedy te informacje mógłbym rozdzielić: jedna w a, druga w b.
W załączniku zrzut ekranu
JB
10149
zwiastun
18-09-2023, 15:39
Nie musisz. Szablon na pewno wykorzystuje techniki flexbox/gridbox. W pozycji modułów można umieścić nawet klika wierszy modułów. W ustawieniach modułu (Wzbogacone) określasz, ile kolumienek siatki obejmuje moduł. Daj 12. Być może konieczne jednak będzie dopisanmie jakiegoś kawałka css
Jeśli mowa o stopce, w szablonie Kasjopea, to akurat ta, ma chyba podział na kolumny o określonym rozmiarze. Ustawienie modułu na 12, pozwoli tylko na pełną szerokość, w kolumnie, a nie całej ramce.
Żeby osiągnąć efekt, o którym mowa czyli wiersz z podziałem i pełem wiersz pod spodem, trzeba dodać nową pozycję.
footer ma klasę:
<footer class="container-footer footer full-width">
</div>
z ramką
<div class="grid-child">
</div>
co nie będzie dawać pełnej szerokości, (container-footer jest w ogóle niezdefiniowany)
Należałoby dodać
<div class="grid-child container-nazwakontenera">
</div>
W praktyce powinno to wyglądać mniej więcej tak:
plik /templates/nazwaszablonu/index.php
<?php if ($this->countModules('footer', true)) : ?>
<footer class="container-footer footer full-width">
<div class="grid-child">
<jdoc:include type="modules" name="footer" style="none" />
</div>
<?php if ($this->countModules('nazwakontenera', true)) : ?>
<div class="grid-child container-nazwakontenera">
<jdoc:include type="modules" name="nazwakontenera" style="card" />
</div>
<?php endif; ?>
</footer>
plik /templates/nazwaszablonu/templateDetails.xml
<positions>
<position>topbar</position>
<position>below-top</position>
<position>menu</position>
<position>search</position>
<position>banner</position>
<position>top-a</position>
<position>top-b</position>
<position>main-top</position>
<position>main-bottom</position>
<position>breadcrumbs</position>
<position>sidebar-left</position>
<position>sidebar-right</position>
<position>bottom-a</position>
<position>bottom-b</position>
<position>footer</position>
<position>debug</position>
<position>nazwakontenera</position>
</positions>
plik /media/templates/site/nazwaszablonu/css/template.css
.
.
.container-nazwakontenera {
position: relative;
}
.
.
.container-nazwakontenera > * {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
margin: 0.5em 0;
}
.
.
@media (max-width: 991.98px) {
. .container-nazwakontenera {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
.container-nazwakontenera > * {
-webkit-box-flex: 0;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
}
}
.
.
@supports (display: grid) {
.site-grid {
display: grid;
grid-template-areas: ".......". nazwakontenera nazwakontenera nazwakontenera nazwakontenera ."......
.
.
}
@media (min-width: 992px) {
.site-grid {
grid-template-areas: ".... ". nazwakontenera nazwakontenera nazwakontenera nazwakontenera .";
}
}
.
.
.
.container-nazwakontenera {
grid-area: nazwakontenera;
}
james.bien
19-09-2023, 23:21
Zwiastun napisał:
Być może konieczne jednak będzie dopisanmie jakiegoś kawałka css
Tak, zmiany w ustawieniach modułu nie przyniosły oczekiwanego efektu. Konieczna zatem ingerencja w kod z dopisaniem pozycji.
To rozwiązanie podaje terra.
Wielkie dzięki - to mało powiedziane. Dla Wyjadaczy to pewnie codzienność. Dla mnie, hobbysty - POTĘGA. Wiedza wzbogacona extra dawką, teraz jeszcze przełożyć na umiejętności i praktykę.
Dzięki za wspaniała lekcje i podzielenie się swoją wiedzą. Teraz trzeba tylko wykonać zadanie.
JB
Pamietaj, że najpierw należy utworzyć szablon potomny, a dopiero w tym szablonie wprowadzić zmiany, inaczej, przy kolejnej aktualizacji Joomla, wszystkie zmiany zostaną usunięte.
james.bien
22-09-2023, 00:31
Na razie testuję sobie, żeby sprawdzić efekt. Jak już wszystko będzie grało - wtedy oczywiście szablon potomny. Jestem już prawie (słowo klucz:))na ukończeniu swoich prób. Na ten moment chcę jeszcze wyrównać zawartość z tej pozycji - ze środka na górę modułu. Patrzyłem trochę gdzie to może być w pliku template.css i wygląda na .footer .grid.child i align-items:, ale nie wiem jeszcze, czy to to.
Dziękuję za wskazówki z dodaniem nowej pozycji - wszystko się udało!!! Jestem wdzięczny. Myślę, że ten, kto trafił na ten wątek skorzystał tak jak ja.
JB
james.bien
22-09-2023, 20:28
Ustawiam na flex-start i zapisuję template.css- nic się niestety nie zmienia.
Jak uruchamiam inspekcję - align-items ma wartość center. Jak zmieniam na flex-start, żeby sprawdzić efekt - jest OK.
Wydaje mi się, że robię dobrze. Zmiana w css, zapis. Ale...
JB
Jak dasz center to wyrówna do środka, start zacznie układać od początku, end bedzie układać od końca. Jeśli jest na to przestrzeń, to zacznie rozmieszczać w pionie.
Nie bardzo wiem co chcesz osiągnąć, bo
body.wrapper-fluid footer > .grid-child {
align-items: start;
}
narzuca wyrównywanie modułów w footer, tak jak tego oczekujesz. Jeśli tego nie robi, to sprawdź klasy tego elementu, bo pewnie on ma jakiś margin lub padding.
james.bien
23-09-2023, 00:04
Tekst, albo pozycje z menu wyświetlają mi się wyrównane do środka (1). Bardziej podoba mi się, gdyby wyrównanie było od góry (2) - załącznik.
W kodzie mam:
body.wrapper-fluid footer > .grid-child {
padding-right: 2em;
padding-left: 2em;
}
Nawet jak dorzucę align-items: start; nic to nie zmienia
10150
bo to nie ta definicja
poszukaj wiersza, z nadrzędną definicją
body.wrapper-fluid footer>.grid-child{
align-items: start;
}
w css istotne jest drzewo klas i kolejność zapisu
james.bien
26-09-2023, 19:14
Kolejna lekcja do odrobienia:). Dzięki. Spróbujemy.
Sposób na rozwiązanie tego problemu, mało elegancki i być może niezgodny ze sztuką, to zastosowanie znacznika <br />. Efekt zamierzony osiągnięty.
Inny sposób: czy mój tok rozumowania jest dobry - utworzenie nowej klasy, wywołanej potem w ustawieniach modułu, która zrealizuje efekt. Czy taką klasę zapisuje się wtedy w template.css czy może w user.css?
JB
template.css bedzie nadpisywany przy aktualizacjach
stosowanie <br> to sztywne ustawienie odległości, więc jeśli sąsiedni moduł wydłuży się , albo skróci to odległość przestanie pasować.
1. Użyj zakładki modułu WZBOGACONE i dodaj tam jakąś klasę np. bottom
2. w pliku user css dodaj definicję
.footer .bottom {
margin-top:auto;
}
james.bien
29-09-2023, 00:08
terra
stosowanie <br> to sztywne ustawienie odległości, więc jeśli sąsiedni moduł wydłuży się , albo skróci to odległość przestanie pasować.
<br> to delikatne "oszukanie" wyświetlania. Przy zmiennej wysokości sąsiadujących modułów rozjeżdża się układ i wygląda to faktycznie mało profesjonalnie.
Próbuję - bez efektu
body.wrapper-fluid footer>.grid-child{
align-items: start;
}
Próbowałem - bez efektu (miałem padding-right i -left; dodałem align-items: stretch)
body.wrapper-fluid footer > .grid-child {
padding-right: 2em;
padding-left: 2em;
align-items: stretch;
}}
Próbuję - wywołuję bottom w klasie modułu, bez efektu
.footer .bottom {
margin-top:auto;
}
.footer .bottom {
/*margin-top: auto;*/
align-items: stretch;
}
Zamierzony efekt widzę tylko podczas inspekcji, align-items: center. Center zamieniam na stretch, baseline, start - wtedy jest ok, ale do tylko podgląd.
.footer .grid-child {
-webkit-box-align: center;
-ms-flex-align: center;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
align-items: center;
justify-content: space-between;
padding: 2.5rem .5em;
}
Póki co - brak pomysłów. Ale i tak dzięki za wskazówki. Zawsze to jakaś nauka.
JB
Za dużo mieszasz, może widzisz efekt, ale to fikcyjne wrażenie, bo baseline i stretch pełnią zupełnie inne funkcje. Wyczyść zmiany które wprowadziłeś i opcja z klasą dla modułu zadziała.
stretch to rozciąganie na wolną przestrzeń, a baseline ustawianie sekcji w osi. poziomej.
skorzystaj z tego https://www.w3schools.com/cssref/css_pr_margin-block-end.php
james.bien
02-10-2023, 21:40
Wszystkie te moje chaotyczne próby robiłem oddzielnie, żeby sprawdzić, która z nich zadziała. Nie zauważyłem oczekiwanego efektu.
Na czystej instalacji Joomla i Cassiopei (żadnej ingerencji w żaden plik) do pliku user.css dodaję:
.footer .bottomf {
margin-top: auto;
}
Efekt w załączniku, układ się nie zmienia.
Nie wiem, czy to tylko tutaj, ale masz literówki, w module jest bootomf, a w klasie bottomf
james.bien
03-10-2023, 23:34
Mój błąd. W każdym z trzech modułów w klasie poprawiam błędne wpisy bootomf na bottomf (jak w user.css), ale niestety to nie działa.
Już widzę gdzie problem, w nowej wersji szablonu zmienił się wpis dla .footer .grid-child , dlatego muisz dodać w user.css
.footer .grid-child {
align-items: unset;
}
james.bien
04-10-2023, 23:13
Victoria!!!
Słowami klasyka z Killerów 2-óch: "Wykonałeś grande travajo, wielką grande robotę przyjacielu terra (sorki za poufałość, ale inaczej się nie da). Należy ci się za to granda walizka złota."
Dziękuję, dziękuję...
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!