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!
Cześć! Witaj w kolejnej lekcji, w której
zajmiemy się tą najważniejszą stroną bloga, czyli widokiem konkretnego posta.
Ten widok posta mamy zamockowany i zaprojektowany
tutaj, dodatkowo wyświetlają się tutaj powiązane posty.
To też zrobimy. No i mamy całą treść posta.
Mamy informację o autorze, mamy datę, kategorię do jakiej należy.
Po prawej stronie znajduje się sekcja z Newsletterem, jak również sekcja z
możliwością udostępnienia tego w social media, a na górze mamy duży obrazek.
No dobra to zabieramy się do pracy. Mockup mamy zrobiony, nie będziemy się trzymali go
idealnie co do piksela jak zwykle. Mamy tę stronę Blog post templete, którą
pokazywałem ostatnio i możemy z tej strony wybrać sobie też konkretny item.
Czyli, jeśli w kolekcji mamy wiele różnych
item'ów możemy tutaj przełączyć się po nich i możemy wyświetlić sobie taki, co do
którego będziemy chcieli mieć te wszystkie przykładowe dane, na których projektujemy.
Pierwsza rzecz, którą zrobimy to przerzucimy
jak zwykle tutaj menu, 3 razy "a", a następnie Blog menu wrzucamy na górę no i kolejna sekcja,
też to będzie sekcja, którą pożyczymy tak samo z bloga jak zrobiliśmy ostatnio.
Będzie to ta sekcja Blog hero i ona się zdecydowanie tutaj nadaje.
Natomiast nie będziemy potrzebowali tu tego tytułu, więc trochę ją zmodyfikujemy.
Przechodzimy do Blog post templaet, zaznaczam body i wklejam całe Section blog hero.
Natomiast to co jest fantastyczne na tych
stronach fioletowych, czyli wygenerowanych z CMSa jest to, że my nie musimy korzystać
z Collection list wrapper'ów, ponieważ wszystkie te właściwości z kolekcji pola z
kolekcji mamy dostępne bezpośrednio na tej stronie.
Co to znaczy, że gdybym ja np.
do body dodał jakiś element typu Heading,
to teraz zobacz, że mogę od razu stąd wziąć sobie tekst z Blog postów.
Czyli, jeśli to jest kategoria blog postów
to mam wszystkie pola stąd dostępne bez konieczności tworzenia Collection list
wrappera. W związku z tym w zasadzie, to co mógłbym zrobić, mi zależy tylko na tym
zdjęciu, więc to zdjęcie mogę przerzucić do Blog hero title,
w to miejsce. Całego Collection list wrapper mogę się pozbyć i teraz, jeśli chodzi o
samo Blog hero title to może dodajmy tutaj jeszcze jedną klasę
Blog post to będzie klasa, którą będziemy używać, żeby nie nadpisać sobie tych rzeczy.
Będzie ona specyficzna dla strony Blog postów. Wrzucimy tutaj stałą szerokość 480
pikseli zgodnie z projektem, a następnie na Blog hero
image też dodamy tę specyficzną klasę. Stworzę sobie nową combo klasę Blog post
i teraz zmienimy to w ten sposób, że szerokość tego zdjęcia to będzie 100
procent i właściwości takie jak Border radius też musimy zmienić.
Radius ustawimy tutaj 12 pikseli z każdej strony no i tyle.
Nie za ładne jest to zdjęcie, może przenieśmy się na jakiś inny post i
skorzystajmy z tego zdjęcia i na nim pracujmy.
Wybierzmy teraz opcję Collapse, klikam na Body,
Klikamy na "a", żeby dodać kolejny element,
będzie to sekcja, a w środku stworzę kontener, czyli standardowa sytuacja.
Mamy sekcję i kontener, ale nie kopiowałem
tego z żadnej innej strony, bo ten kontener będzie się trochę różnił,
więc może stworzymy to właśnie od nowa.
Niech to będzie taka klasa Blog post
section, którą teraz stworzę dla tej sekcji na razie nie zmieniam jej właściwości,
a sam kontener nadajmy mu klasę Blog post container.
I to właśnie w tym Blog post kontenerze
Warto by było ustalić sobie maksymalną szerokość i właśnie w przypadku bloga
będzie ona mniejsza, czyli będzie to 10, 80 pikseli.
Tutaj zrobimy sobie w środku dwie kolumny,
ale może jeszcze założymy na to Padding rzędu 20 pikseli z lewej i z prawej strony.
To jest fajne rozwiązanie, bo Padding na tym elemencie pozwala nam automatycznie
w tych wersjach responsywnych, że tekst nie będzie dojeżdżał do
lewej i prawej strony, więc warto na tym pierwszym kontenerze zrobić dodatkowy
Padding on jest automatycznie wycentrowany i możemy dodawać kolejne elementy i ja
sobie zrobię je w takiej strukturze moglibyśmy w zasadzie albo zrobić kolumny,
albo zrobić Flex box'a, albo zrobić Grid'a w sumie mi się najwygodniej ostatnio pracuje
z Grid'em, więc zrobię sobie Grid'a. Zrobię dwie kolumny po lewej i prawej stronie.
Jeśli chodzi o ustawienia tego Grida warto
też dodać mu specyficzną klasę, automatycznie tę klasę dostał,
wybierzmy Grid, a następnie zmienimy to na Blog post grid na przykład
jeszcze raz wejdziemy w edycję tego Grid'a i ustalmy, że, jeśli teraz jest podział pół
na pół, czyli jedna frakcja i jedna frakcja, chce to powiększyć tak, żeby tutaj mieć do
dyspozycji 1,75 frakcji na treść posta, a kolejna reszta co zostanie będzie
do dyspozycji na Newsletter oraz na share'owanie w social media i to będzie OK.
W ten sposób też postaramy się zachować taką rozsądną długość linii tekstu na
blogu, około dziewięćdziesięciu znaków pewnie się zmieści, więc jest OK.
Mamy ten podstawowy podział zrobiony, ale jeszcze musimy
zrobić sobie właśnie te dwie właściwe sekcje, które pójdą do lewej strony i do
prawej strony, więc to będą już techniczne div'y. Pierwsze nazwę
Blog post content.
Natomiast drugi div, który tutaj wstawimy wybieram div block.
Tylko, że nie w środku tylko w tym Gridzie,
wystawimy go po prawej, w ten sposób możemy go nazwać Side actions
i automatycznie te div'y wskoczyły w odpowiednie miejsce, ponieważ skorzystaliśmy z Grid'a.
Możemy zająć się najpierw zawartością div'u, który zawiera cały post kontent.
Wstawiamy tu kolejne elementy no i najpierw będę chciał stworzyć taki
blok tytułowy. Zobacz, że w XD jest taki cały blok, gdzie mamy na górze coś, tutaj tytuł, tu
jest kategoria, tu jest tytuł, tu jest informacja o autorze itd.
Więc będziemy musieli przygotować na to
znowu jakiś kontener techniczny najlepiej. Nadajmy mu odpowiednią klasę może Blog post
title block, czyli blok, który będzie zawierał wszystkie te elementy tytułu i do niego do
środka wstawimy na pewno Text block, który będzie
zawierał informacje o kategorii, ale to oczywiście nie wszystko, bo jeszcze mamy
tam tytuł, więc damy Heading1 i teraz kolejno potrzebny jest nam jeszcze jeden element.
Jeżeli bym wstawił Paragraph zobacz co tutaj
się stanie, bo to co ja potrzebuję, to wpisać tutaj informacje o autorze,
"By Author"
i jeszcze informacje o publikacji "on" np.
5 czerwca 2020. Teraz to wygląda w ten sposób, że musiałbym to
oczywiście przydzielić, bo autor musi być dynamiczny, jak również data musi być
dynamiczna, więc mógłbym autora zaznaczyć i wstawić go w Span.
Teraz zobaczmy, czy taki Span jest tutaj,
może dostać znowu te dynamiczne dane z CMSa.
Znów nie może, więc znowu wracamy do tej sytuacji, gdzie
będziemy potrzebowali to wszystko rozbić. Możemy to rozbić na poszczególne
pojedyncze Text block'i, a robimy to tak, że najpierw dodajemy sobie jeden i teraz, żeby
niepotrzebnie nie kopiować i wklejać to po prostu dajemy mu klasę Caption.
Może to być Caption blog post.
Caption blog post.
I do tej klasy przypisujemy odpowiednie
właściwości, czyli może od razu nadajmy mu Display in line block,
po to, żeby mogły te elementy być wyświetlane obok siebie.
Następnie zmienimy Weight, grubość frontu na 500, medium, natomiast zmienimy kolor,
kolor zmienimy na nasz Ciemnoszary ok. I teraz mając już przygotowany taki jeden
Caption blog post możemy po prostu go powielić.
W zasadzie będą nam potrzebne chyba cztery, bo pierwszy będzie "by".
Następnie mamy informację o autorze.
Kolejno będziemy mieli "on"
i następnie będziemy mieli datę. Zaraz to sobie rozdzielimy w ten sposób, że na Caption blog post
jeszcze dodamy dodatkowy margines z prawej strony i to będzie jakieś 5, 6 pikseli.
To tyle co jedna stacja.
Akurat w tym przypadku może zrobimy 5 i to
w zasadzie byłoby na tyle, jeśli chodzi o ten Blog post title block tyle, że jeszcze
na tym Text block'u zmienimy styl i wybierzemy Caption, wybierzemy styl, który już
mieliśmy i teraz chyba wszystko jest w porządku.
Możemy w związku z tym przejść do kolejnego elementu, czyli w Blog post conntent
wstawiamy sobie dalej taki element jak akapit. Będzie to
Excerpt, czyli wycinek tego co znajduje się w poście.
Blog post excerpt tak go nazwiemy i ustalimy dla niego pewne właściwości.
Tutaj na dole będzie margines 32 piksele, na górze ustalimy identyczny margines też damy
32 na razie i kolejno zmienimy ustawienia frontów to będzie DM Sans
500 medium zostawimy, ale zmienimy jego rozmiar na 22 i interlinię zmienimy na 32
piksele. Kolor zostawimy ten nasz podstawowy i wydaje mi się, że to wszystko
co powinniśmy zrobić, jeśli chodzi o sam excerpt.
W związku z tym klikamy w Blog post content znowu i dodajemy
nasz najważniejszy element, a ten najważniejszy element to jest element typu
Rich text, czyli to co wcześniej zdefiniowaliśmy
w CMSie też zdefiniowaliśmy to pole,
zawartość bloga jako włąsnie pole Rich text, dlatego tutaj z niej skorzystamy.
I od razu, jak widzisz, został wklejony z jakimś
nagłówkiem, z jakimiś poszczególnymi elementami.
Wygląda na to, że ta struktura będzie w
porządku, natomiast przypominam, że my w naszym Style guidzie mamy już sformatowaną
taką sekcję i tam zmienialiśmy różne style.
To jest właśnie ten element typu Rich text i on ma specyficzną klasę Blog article, więc teraz
tę klasę powinniśmy zapiąć do Rich text'u, który tu wstawiliśmy po to, żeby wszystkie
style, przygotowane przez nas wcześniej, zostały do niego dopisane.
I wygląda, że coś tam się zmieniło.
Zmienił się nagłówek pierwszy, ogólnie strukturę tej pierwszej sekcji mamy gotową.
W zasadzie mogę też dodać sobie tutaj od razu Footer, czyli przejdźmy do symboli i
wrzucimy ten sam Footer, który dodajemy wszędzie.
To pozwoli mi też scroll'ować.
Za chwilę zajmiemy się prawą szpaltą, ale najpierw wstawmy tutaj dynamiczne dane i
tak jak powiedziałem strony fioletowe, te które są stworzone przez CMSa, mają tę
magiczną właściwość, że nie musimy dodawać kolekcji danych i możemy automatycznie w
tej sekcji ustawień Settings korzystać z danych, które tu się znajdują. Więc będziemy
chcieli wstawić tekst z Blog postów, a ten tekst tutaj akurat to będzie
kategoria, która nazwa kategorii. Później kolejno mamy
następny tekst, czyli nazwa konkretnego wpisu.
No i w to miejsce, gdzie mamy autora
będziemy musieli zaciągnąć informacje o autorze. Mamy autor Name i wszystkie inne dane,
będzie nam potrzebne tylko imię. Data to będzie data publikacji tego wpisu.
W związku z tym przechodzimy na sam dół i
mamy coś takiego jak Published on, możemy ewentualnie też
zmienić to na datę Updated on i to też może się tutaj wyświetlać gdybyśmy wpisali np.
Last update on, natomiast my wpiszemy sobie Published on i to będzie data publikacji. Nie
data stworzenia rekordu. Jest istotna różnica między Created a Published,
ponieważ Published to będzie ta data kiedy opublikowaliśmy zmiany w CMSie
i ten blog post rzeczywiście stał się wtedy widoczny.
Teraz jeszcze możemy zmienić format. Zobacz,
że mamy tutaj szereg formatów, z których możemy wybierać, natomiast ten, który został
wklejony jest dla mnie jak najbardziej OK.
Możemy też zawęzić to tylko do roku, dnia, godziny nawet, ale my chcemy to
standardowo wyświetlać tak jak jest tutaj. Teraz Excerpt. Musimy przejść do jego
ustawień i też mamy oczywiście takie pole Plain text excerpt został wstawiony.
No i cały Rich text, czyli cały ten Blog article będziemy chcieli pobrać i, jeżeli
tylko zgadza się typ tego pola, czyli tutaj mamy Content zdefiniowane w kolekcji jako
Rich text, to do tego elementu cała treść posta zostanie automatycznie wklejona.
Teraz mamy już wszystkie dane
dynamiczne z CMSa, wszystkie dane w lewej szpalcie, a w zasadzie nawet nie zauważyłem
kiedy się zmienił ten post, bo zmienił się znowu ten obrazek na
wcześniejszy, więc możemy teraz przełączać się pomiędzy blog postami. Zobacz jak wszystko
się zmienia, zarówno tytuł, jak i kategoria, autor, przełączmy się jeszcze na jakieś
inne, post i też tutaj wszystko zostało zmienione.
Tu akurat mam jakiś krótki wpis, więc to działa i jest dynamiczne.
No to przejdźmy teraz do kolejnej lekcji, w której stworzymy Site actions.
Będzie to element statyczny i pewnie szybko się z tym uporamy.
Do usłyszenia!