Wdrożenie projektu
15 godz. 6 min · UI, UX i Webdesign
Krzysiek PiekarzAutomation Specialist / No-code DeveloperMateriał szkoleniowy został zaprojektowany tak, aby mogło z niego skorzystać jak najszersze grono odbiorców. Nieważne czy jesteś totalnym laikiem, czy też posiadasz już wiedzę z zakresu programowania lub designu, na pewno znajdziesz tu coś dla siebie. A więc kto jeszcze może skorzystać z wiedzy zawartej w tym kursie?
W tej lekcji zajmiemy się ostatnim
widokiem konta hosta w naszym dashboard jaki przygotowałem.
Jest to oczywiście tutaj sekcja Review.
Po przełączeniu się tutaj Full State uzyskuję właśnie taki widok.
Jak widzisz, znów jest to powtórzenie tego, co przygotowałem wcześniej.
A więc ja po prostu z klona dałem sobie tylko element o nazwie Guest reviews Where
i wprowadziłem do niego kilka bardzo drobnych poprawek.
Przede wszystkim zmieniłem nazwę na tym przycisku na Replay Review.
Po jego kliknięciu otwiera się znany Ci już pop up, do którego dorzuciłem tylko tą
grupę, gdzie mamy informację o tym, jaki rating w swojej opinii wystawił nasz gość.
Jego tutaj komentarz oraz informacja.
A w tym miejscu dodałem ten nagłówek i
dzięki temu nasz host będzie mógł teraz odpowiedzieć właśnie na taki komentarz, a
nasza aplikacja zyska na dynamice i wiarygodności, ponieważ zarówno goście
jakich gości będą mogli dzielić się swoimi opiniami.
W przypadku widoku Pool nic się tutaj nie zmieniła.
Ja pozostawiłem go właśnie dokładnie w takiej formie, jaki był poprzednio.
I w zasadzie na tym mogłaby się zakończyć cała ta nasza akcja.
Ja jednak chciałbym tutaj wrócić do jednego, bardzo ważnego elementu, który
pominęliśmy podczas naszej dotychczasowej pracy.
Nie wiem, czy zwróciłeś na to uwagę.
Mam nadzieję, że tak.
A jeżeli nie, to zaraz wytłumaczę Ci o co chodzi.
A więc tak chcę się wylogować.
Następnie zalogować się na konto gościa.
Przejdź do widoku sekcji Booking i widoku Empty State,
ponieważ mamy tutaj przycisk Start exploding box, on chwilowo nic nie robi.
Ja natomiast chciałbym, aby po jego
kliknięciu otwierała nam się zaawansowana wyszukiwarka, a więc odpalało się niemal
dokładnie to samo workflow, który odpala się gdy teraz kliknę w ten element.
Jak pamiętasz dla naszego RISa element na
dashboard Re wykorzystaliśmy odpowiedni custom state.
Potem wykorzystaliśmy odpowiednie workflow
oraz Condition, ale aby właśnie wyświetlać takie elementy.
Natomiast w tym miejscu natrafisz na jeden bardzo ważny problem.
Otóż zarówno nadmiar,
jak i cały ten element box empty state są osobnymi useful elements.
Tak jak pamiętasz, tłumaczyłem ci w
lekcji, której mieliśmy wprowadzenia do tych elementów, że w Bubbles stanowią one
niejako osobne strony, a przez to nie mogą bezpośrednio komunikować się między sobą.
Natomiast to, że nie ma go bezpośrednio,
nie oznacza, że nie mogą wcale Takich sposobów na to, aby różne
elementy komunikowały się między sobą jest kilka, a jednym z najważniejszych i w
zasadzie najczęściej używanych jest pasek adresu URL.
Czyli możemy tutaj wykorzystać zarówno
odpowiedni URL parameter, jak i podzielić nasz cały URL na segmenty,
co wcześniej robiliśmy tutaj dla naszego menu i w ten sposób przekazać tam
odpowiednie informacje i po co je potem pobierać?
Wykorzystać odpowiednie condition, Ale i w
ten sposób właśnie takie niepowiązane ze sobą elementy będą się mogły komunikować.
Oczywiście w tym przypadku tutaj
moglibyśmy wykorzystać na przykład zwykły parametr URL i za jego pomocą właśnie
tutaj pokazywać albo ukrywać taką zaawansowaną wyszukiwarkę.
Ja jednak chciałbym do tego tematu podejść w nieco inny sposób.
Pokazać Ci kolejną metodę,
za pomocą której właśnie taki element mogą się komunikować między sobą
oraz porozmawiać o pewnej przykrej sytuacji, na którą na pewno nieraz się
natkniesz, kiedy będziesz stosował takie inne metody.
A tą metodą jest wykorzystanie po prostu pluginów.
A więc przejdźmy do edytora.
Przejdźmy do plugins.
Ja chciałbym wykorzystać plugin o nazwie tutaj Zacznijmy sobie wpisywać DNS.
I nosi on nazwę DNS Global Custom State.
I tak w Babel bardzo często znajdziesz
pluginy, które mają niesamowitą wręcz dokumentację np.
pluginy od Zara Code. Tak właśnie działają.
Tam jest wszystko dokładnie opisane.
Masz podgląd jak działa taki plugin?
Masz również dostęp do edytora twórcy takiego pluginu, więc możesz sobie
dokładnie sprawdzić jak należy to wszystko poustawiać.
Zresztą oni bardzo często wrzucają również
instrukcje krok po kroku jak taki plugin wykorzystać w praktyce.
Natomiast tutaj zobacz co się dzieje.
Najpierw zainstalujemy taki plugin.
I teraz kliknij plugin page co powinno nas przenieść na stronę pluginu.
I klikamy Otwieramy.
I nie ma tutaj nic.
To jest właśnie ten problem, z którym bardzo często się spotkasz, a mianowicie
twórcy zapominają o tym, aby dodać tutaj jakiekolwiek instrukcje.
W takiej sytuacji możesz albo próbować
rzeczywiście skontaktować się z twórcą takiego pluginu.
Oni bardzo często są naprawdę komunikatywnie.
Ja zresztą kilka razy pisałem do twórców, aby wyjaśnili mi jakieś opcje,
albo gdy nie byłem pewien czy dokładnie to co tam ustawiam powinno działać tak jak
sobie ten twórca zamierzył i bardzo często właśnie dostawałem odpowiednie odpowiedzi.
Niemniej jednak trafisz również i na takich twórców pluginów, którzy chyba nie
życzą sobie kontaktu i nie odpowiadają na żadne wiadomości.
Wtedy możesz oczywiście próbować wykorzystać na przykład forum blabla i tam
poszukać odpowiedzi albo podpowiedzi czy dobrze ustawiłeś dany plugin.
Jak widzisz tutaj nie mamy żadnej informacji.
Ja zainstalowałem sobie taki plugin, bo ustawiałem go według własnego uznania.
Nie wiem czy zgodnie z zamierzeniami
twórcy, ale uzyskałem efekt na którym mi zależało.
Więc chyba działa to tak jak działać powinno.
A więc zamykamy tą stronę.
Dodaliśmy nasz plugin Global Custom Stats,
dzięki czemu będziemy mogli ustawić custom globalne, do którego będziemy mieli dostęp
z poziomu różnych Mariusa Elements, czyli z różnych miejsc naszej aplikacji.
Klikamy Down i w pierwszej kolejności chcę
przejść tutaj do Isabell element o nazwie Guest Booking Empty.
A właśnie do tego.
I będziemy teraz musieli taki plugin.
Tutaj wstawia taki element dodany przez plugin wrzucić na naszą stronę.
Ja w tym przypadku nie chcę sobie psuć
tego całego układu, więc to co chcę zrobić to pokazać ten obrazek.
Kolejno ubrać go w grupę align to parent.
Nazwijmy ją np.
Image wrapper czy Image Group.
To nie ma tutaj większego znaczenia.
A ponieważ jest to all in to parent, to
bezproblemowo będę mógł wstawić tutaj właśnie ten element.
On nie popsuje mi układu, on się nie będzie wyświetlał w podglądzie strony, a
ja będę mógł sobie go tutaj odpowiednio zdefiniować.
Zacznijmy od nazwy.
Będzie to NAV Bar Global Custom State.
Teraz tak nadajemy tutaj nazwę takiego statku.
W naszym przypadku, o ile dobrze pamiętam, było to Show Advanced Search.
Oczywiście nie musisz stosować dokładnie takiej samej nazwy, ale jeżeli już na
jakąś się zdecydowaliśmy, to staraj się trzymać tej logiki.
A więc mamy nazwę statku.
Tutaj definiujemy jego data type.
U nas będzie to oczywiście typ Boolean, a więc jest nowa i domyślna wartość.
U nas było to ok.
OK, mamy to zdefiniowane.
To teraz dodajmy odpowiedni workflow, który będzie nam właśnie zmieniał taki
custom state po kliknięciu w ten guzik start exploding.
Zaczynamy sobie wpisywać stat.
Jak widzisz mamy tutaj akcję, z której już
wcześniej korzystaliśmy, czyli Set state of an element.
Ta domyślna dodana przez Babel.
Natomiast w momencie, kiedy wrzuciliśmy właśnie taki element na stronę,
pojawiały się tutaj dodatkowe akcje właśnie zapewniane przez taki element.
Czyli możemy w tym przypadku wybrać tą
opcję, czyli set value a global custom state.
Mamy tylko jeden element na stronie, a więc zostało odpowiednio rozpoznane,
a my musimy teraz ustalić jaka waluta jako wartość chcemy zmieniać taki stat,
oczywiście na wartość przeciwną niż była domyślnie ustawiona.
A więc znów musimy wykorzystać trick,
który wcześniej już pokazywałem, czyli odnieść się do takiego elementu.
Kolejno wybieramy opcję Global Custom Stat
Value, ponieważ chcemy zmienić value, a nie nazwę.
I teraz wybieramy istną.
W ten prosty sposób.
Jeżeli tu była wartość, to zamienimy ją na Yes.
A jeżeli będzie to wartość jest, to
automatycznie po uruchomieniu takiego workflow ona zamieni się na NOW.
Skoro ten element mamy gotowy, to workflow
nam już działa, to musimy teraz podjąć następne kroki.
Wracamy do dizajnu.
Kopiujemy ten element na Global Custom State.
I musimy go teraz wrzucić jak się domyślasz do naszego na bara.
U nas jest to nasz dashboard a.
Ja będę chciał go wstawić tutaj do tej grupy.
Czyli do grupy CT Group. Wklejamy.
To, co muszę tutaj zrobić, to przede wszystkim.
Przejdźmy do layoutu. Chcę go sobie wycelować w pionie,
przesunąć tutaj i tylko zmniejszyć go do dziesięciu pikseli.
Nie potrzebujemy tutaj jakiegoś dużego rozmiaru tego pluginu.
I teraz oczywiście będziemy wszędzie tam, gdzie odnosiliśmy się do custom state,
czyli tego, który mamy zdefiniowany dla całego elementu element.
A więc tego będziemy musieli właśnie ten custom stats podmienić na ten.
Jak to najprościej zrobić?
Moglibyśmy właśnie spróbować szukać wszystkie workflow i
wszystkie condition, ale i tam to zmieniać.
Ale najprościej będzie po prostu wykorzystać debugger w Babel.
Czyli wywalamy ten custom state i otrzymujemy tutaj całą listę.
W ten sposób Bubble sam nam pokaże, gdzie
wcześniej właśnie wykorzystaliśmy taki custom state.
I teraz odpowiednio musimy to podmienić.
A więc klikam sobie tutaj.
Podobny szereg błędów na pewno otrzymałeś
w momencie, kiedy tworzyliśmy stronę profilowe.
Ja specjalnie pominąłem ten krok z
rozwiązywaniem tych błędów, ponieważ ich rozwiązanie najczęściej polega właśnie na
kliknięciu w taki błąd i bubble sam wskaże Ci co i gdzie należy poprawić.
A więc zacznijmy od tego.
I mamy tutaj ok.
Kiedy ten element jest widoczny?
OK, czyli musimy się odnieść do.
Na Global Custom State.
Global Customs Value.
Is jest.
Wydaje mi się, że właśnie tak to powinniśmy zdefiniować.
Zaraz zobaczymy. To jest grupa na FB Search Result.
Jaka to jest grupa? Pokażmy ją sobie.
A tutaj drzewku elementów.
OK, czyli to jest ta grupa ok.
Czyli na odwrót ta grupa powinna się pojawiać wtedy, kiedy
ten custom state, a w zasadzie global custom state ma wartość.
No.
Zerknijmy teraz tutaj.
Mamy grupę na Start Advanced, czyli ta dopiero powinna się pojawiać.
Wtedy, kiedy ten custom state będzie miał wartość.
Jest. A widzisz, tutaj mamy not found.
Jest trudno, nawet się to zgadza.
Tu się to odnosimy do custom statu, który
nie istnieje i on powinien być równy tutaj i tu.
Czyli jest.
A więc na.
Global taste state Customs, Valium issues.
OK, tu mamy.
Ten element Advanced Storage Group.
OK, czyli to jest dokładnie.
Ta grupa, która się będzie pojawiała.
A więc możemy sobie wybrać tu na Global Custom State Custom z tych 2 i jest ok.
Zadbaliśmy o odpowiednie pokazywanie takich elementów i ich ukrywania.
I teraz oczywiście musimy tutaj odnieść
się do samego workflow i zmieniamy właśnie ten custom state.
A więc po kliknięciu w tą grupę będziemy.
Się odnosić do.
Właśnie tego elementu.
OK, mamy create nowy custom state, czyli nie.
Czyli musimy wywalić tą akcję i poszukać innej.
Wybierzmy State.
I teraz oczywiście wybieramy tę operację,
którą zapewnia nam sam ten element, a w zasadzie sam ten plugin.
I tu możemy wybrać.
Jest.
Natomiast po grupie po kliknięciu w grupę Advance kopiujemy sobie tą operację.
Tu możemy się odnieść do nauki.
Oczywiście moglibyśmy się odnosić
do całego elementu i zamieniać go na przeciwny, natomiast w tym przypadku
kliknięcie w tą pierwszą grupę powinno zmienić najazd, a kliknięcie w tą drugą
powinno go zmienić na nową, więc możemy tutaj na stałe to wpisać.
I teraz zerknijmy czy to tak naprawdę zadziała.
Klikamy w tę grupę.
Wygląda na to, że tak. OK.
Jesteśmy w stanie pokazywać i ukrywać ten Advanced Search Box.
Klikamy tutaj.
Jak widzisz działa to dokładnie tak samo.
A więc teraz te dwa różne elementy mogą komunikować się między sobą
i wpływać na ten custom state, dzięki czemu za pomocą przycisku
możemy pokazywać bądź ukrywać taką zaawansowaną wyszukiwarkę.
Ja dziękuję Ci za uwagę w tej lekcji.
W kolejnej lekcji przejdziemy już do podsumowania naszej pracy.
I widzimy się już za moment.