Techniki Zaawansowane i CMS
4 godz. 45 min · Webflow · UI, UX i Webdesign
Grzegorz RógIdea ArchitectDzięki CMS masz możliwość zdefiniowania w ramach Webflow bazy danych wraz ze strukturą, którą możesz uzupełniać Ty lub osoba zajmująca się rozwojem strony, w ramach intuicyjnego modułu Editor, bezpośrednio w przeglądarce. W Kursie przyjrzymy się temu, jak działa CMS, jak tworzyć kolekcje i korzystać z dynamicznych danych w ramach podstron w Webflow, jak również w ramach stron kolekcji.
Rozpoczniemy od stworzenia systemu identyfikacji dla naszej strony, który umieścimy w ramach Style Guide w Webflow, dzięki czemu kolejne modyfikacje stylistyczne będą łatwe i dziedziczone na wszystkie podstrony naszego serwisu. Dobre przemyślenie struktury i komponentów pozwoli nam na wydajną pracę w Webflow i szybkie poprawki.
W Kursie przygotujemy od podstaw strukturę danych bloga, użyjemy dynamicznych placeholderów a następnie osadzimy bloga w ramach istniejącej, statycznej witryny, którą przygotowaliśmy w kursie podstawowym Webflow. Dowiesz się wszystkiego o tym, jak działa CMS i jak wykorzystać jego bardziej zaawansowane możliwości.
Poza tym, w kursie przewidziałem szereg lekcji, które pozwolą Ci wzbogacić funkcje Twojego serwisu o logikę biznesową, którą stworzymy bez konieczności używania języków serwerowych. Zbudujemy wyszukiwarkę opartą o elastic search, czyli najlepszy otwarty system do indeksowania i zwracania wyników.
W kursie pokażę Ci też kilka rozwiązań, które pozwolą rozbudować możliwości Twojej strony o przydatne automatyzacje, w ramach których wykorzystamy takie narzędzia jak Zapier czy Integromat. Dzięki temu będziesz mógł wyjść poza ekosystem Webflow i wpiąć na swoją stronę, bez kodowania, w zasadzie dowolne narzędzie, z pomocą API!
Kurs przygotowałem przede wszystkim dla osób, które znają już podstawy Webflow i potrafią stworzyć w tym narzędziu dowolny layout, ale chcą wzbogacić swoje projekty o dynamiczne dane i zaawansowane narzędzia, które oferuje ta platforma. Konieczne są tu solidne fundamenty Webflow z kursu podstawowego oraz przynajmniej podstawy HTML i CSS. Nie zaszkodzi trochę wiedzy z programowania, choć nie jest to obowiązkowe. Ten kurs to świetny sposób na to, aby przygotować funkcjonalne MVP swojego produktu, ale też zacząć oferować klientom dynamiczne strony i funkcjonalność CMS w połączeniu z narzędziami no-code, które pozwala tworzyć projekty w rekordowym czasie!
Witaj w kolejnej lekcji, gdzie zajmiemy się następną sekcją, czyli sekcją Recent Articles.
Będzie ona wyświetlała dla nas ostatnie artykuły z bloga i na tej samej
zasadzie przygotujemy sekcje, które będą później wyświetlały
ostatnie artykuły, które ukazały się w poszczególnych kategoriach.
Zabieramy się do pracy. Sekcję blog hero,
którą przygotowałem jako taką trochę odrębną i tak chciałbym, żeby to pozostało,
czyli zarówno ten kontener jak i blog hero section będzie miała unikalne klasy.
Natomiast te wszystkie rzeczy, które zrobimy teraz, będą już miały takie same
klasy, czyli zrobimy sobie blog category section.
Coś takiego. Wpiszemy sobie blog category section.
W zasadzie tutaj damy tylko jedną właściwość zrobimy margines
od góry w wysokości stu pikseli.
I tak będą od siebie oddzielone te sekcje.
Natomiast w środku zrobimy kontener techniczny jak zwykle i ten kontener też
będzie miał konkretne właściwości, czyli max width 1282. W ogóle
nadajmy mu odpowiednią klasę, a nie kontener 4.
Możemy zrobić blog content container. Ustawmy jeszcze dla niego wyświetlanie jako
Flex. Zrobimy tutaj vertical i wycentrujemy go zarówno w poziomie jak i w pionie.
Następnie wstawimy do tego element.
Będzie to symbol i mam tutaj coś takiego jak Header section - to jest właśnie coś z
naszego Style Guide'a, co mi się tutaj przyda. Jeśli chodzi o ten nagłówek,
czyli Captions, zmienimy to na From The Blog.
Pod spodem będziemy mieli Heading Recent Articles.
A ten cały tekst po prostu usuniemy.
Co prawda on się tutaj wyświetla, ale nie będzie widoczny w podglądzie.
Oprócz tego, wstawimy tu Collection list
wrappera i w ramach tego Collection list wrappera
będą nasze wszystkie posty.
Czyli mamy Collection list i Collection item.
Najpierw spróbujmy ostylować Collection list
i zmienimy może klasę tego elementu na blog card list, coś takiego dodamy.
Ponieważ chciałbym, żeby te item'y były wyświetlane jako grid
Na przykład, możemy to zrobić, żeby mieć
naprawdę dobrą kontrolę nad tym gridem i ustawienia tego grida.
Zróbmy sobie Gap na 24 piksele. Jeśli chodzi o rzędy
też zrobimy 24 piksele, zostawiamy Rows i dodamy jeszcze jedną kolumnę. Natomiast
usuniemy ten niepotrzebny 1 rząd i będziemy mieli teraz trzy elementy obok siebie.
Zostawiamy to tak, a jeśli chodzi o ustawienia to na razie możemy również
zestawić. Jak widzisz Collection list item'y się tu nam ładnie wyświetlają.
Oczywiście musimy je połączyć z właściwą
sekcją, czyli jako Source z CMSa musimy wybrać standardowo blog posty.
No i właśnie teraz chcemy przejść do
ustawień tych blog postów, a następnie zawęzić ich wyświetlanie do trzech item'ów.
Czyli chcemy wybrać znowu polecenie Limit items i zrobić sobie trzy.
Wybieramy Return, a te które będziemy
chcieli wyświetlać Sort order, to będą oczywiście po dacie publikacji i po prostu
wszystkie najnowsze posty chcemy tu wyświetlić.
Teraz, jeśli przejdziemy do Collection
itemów to będą one miały również dziedziczone style z grida, czyli jako
Grid child będziemy mogli ustawić tutaj opcję Align.
Chciałbym na razie ustawić tylko opcję
Stretch, żeby one rozciągały się od lewej do prawej krawędzi natomiast to, co nas
interesuje w środku to wstawienie kolejnego link block'a, bo cały znowu ten
kafelek będzie linkiem i standardowo, tak jak zrobiliśmy poprzednio,
będziemy chcieli, żeby on linkował do Current blog posta.
Po kliknięciu w cały ten kafelek będzie ktoś mógł po prostu pójść do
właściwego posta, dla tego link block'a dodajmy klasę np.
blog card. W ten sposób, a na cały Collection item może
zmienimy tutaj też klasę na blog card collection item.
I teraz w środku będziemy już stylować i dodawać elementy do poszczególnych kart.
Zacznijmy budować tę strukturę od
technicznego div block'a, którego nazwiemy Tags wrapper.
Będzie on zawierał tagi i możemy zamodelowwać tutaj np.
dwa text block'i, czyli jeden tag to będzie
ten dotyczący posta featured, a drugi dotyczący kategorii. OK.
Następna rzecz, którą chcę tutaj umieścić to kolejne techniczn div block i będzie to
div block, który będzie zawierał obrazek, czyli np.
Cards image container
Albo wrapper i będziemy chcieli od razu
wstawić do niego obrazek, czyli wybierzmy image i też dodajemy od razu do niego
klasę Card image. Kolejno zrobimy następny div block, który będzie zawierał
tytuł, excerpt oraz footer, które przygotujemy, czyli
imię i nazwisko autora oraz do jakiej kategorii należy post, także
będzie to kolejny element, który nazwiemy card text.
Card text do tego card text'u wrzucimy sobie następujące elementy.
Pierwszy div block, może znowu konstrukcyjny, będzie zawierał tytuł, czyli Card title.
A drugi taki konstrukcyjny div block
Będzie zawierał ten footer, czyli weźmy sobie div block i wpiszemy card footer.
I teraz możemy dodać jeszcze do tego div block'a
card title elementy. Będziemy chcieli mieć tutaj tytuł Blog post'a, czyli heading typu
trzeciego, a także po prostu akapit tekstu czyli Paragraph, tyle że ten akapit będzie
naszym opisem, czyli excerpt'em. W samym footerze strukturę przygotujemy
następująco. Wrzucimy text block'a i w sumie powielimy go trzy
razy, dlatego że będziemy mieli najpierw autora, a dajmy mu klasę card author
card author.
Kolejno będziemy mieli taki separator, możemy nazwać go Card separator.
Będzie to słowo in,
a później będziemy mieli kategorię, czyli możemy zrobić tutaj card category.
Ja miałem wcześniej już zamodelowane
podobne kafelki, ale naprawdę chciałem, ponieważ jest to element dosyć ważny
konstrukcyjny, który będzie nam się powielał mnóstwo razy, to chciałem go
przygotować od podstaw i pokazać Ci jak go zrobić tutaj, więc mamy strukturę gotową.
Teraz trzeba będzie jeszcze pobierać dynamiczniee dane.
Czyli tak, po pierwsze
Heading 3, możemy bardzo łatwo pobrać tutaj dane, z blog post'a i bierzemy jego name.
Następnie w miejsce tego akapit tu będziemy chcieli pobrać excerpt.
Kolejne pole to autor i przejdźmy może do jego ustawień block settings, żeby było nam
wygodniej wybrać to z listy. Wybieramy author name, w tym miejscu po prostu wpiszemy in,
ponieważ to będzie w wewnątrz kategorii i tu zrobimy card category, czyli pobierzemy sobie Get
i przejdziemy do sekcji category, category name.
No i wygląda to całkiem nieźle.
Jeszcze tylko zdjęcie. Card image, wybieramy z blog postów.
I tutaj też wybieramy zdjęcie 16 na 9.
Ok. Wygląda na to, że strukturę mamy gotową.
W końcu chcemy pokazać tutaj czy post jest featured, czy nie.
Więc możemy zrobić po prostu featured.
Natomiast w tym polu tekstowym pobierzemy
sobie tag, czyli przechodzimy do tag name i jest w porządku, jeśli chodzi o strukturę.
Wszystko mamy. Teraz trzeba będzie zająć się stylami.
Po pierwsze, te
blog tagi będą łatwe do zrobienia. Zobaczmy jaką mamy tu klasę caption i blog tag, więc
obie te klasy musimy zastosować. Najpierw klasa caption, następnie blog tag.
I tutaj zrobimy to samo, zrobimy sobie caption
i zrobimy klasę blog tag, z tym, że
będziemy chcieli pobrać dynamicznie kolor
dla tego elementu i mamy te kolory zdefiniowane w bazie.
W związku z tym możemy przejść do właściwości i mamy Dynamic style settings.
Teraz możemy dla caption ustawić sobie
Background color z blog postów, a pole to będzie to, do którego mamy reference, czyli tag color.
Zobacz, że automatycznie te kolory zmieniły się na te, które mamy w bazie.
Bardzo fajna sztuczka.
To, co jeszcze możemy zrobić to oczywiście w niektórych tylko
możemy wyświetlać, a w niektórych nie będziemy wyświetlać tego, że jest featured w związku
z tym przejdźmy do featured i ustawmy tutaj Condition visibility.
Będziemy to wyświetlać tylko wtedy, kiedy flaga featered switch jest włączona.
Wybieramy polecenie Save i jak widzisz dla tych dwóch postów featured jest włączony,
a dla tego nie. W związku z tym zostało ukryte.
W ten prosty sposób zrobiliśmy całą
strukturę i mamy dane z CMSa. W kolejnej lekcji zajmiemy się ostylowaniem kafelków.
Do usłyszenia.