Obsługa kanałów do zgody na newsletter w darmowych szablonach graficznych Comarch e-Sklep

Listę zgód wyświetlanych w newsletterze możemy znaleźć w tablicy przechowywanej w obiekcie config.TOS.Consents.Newsletter. Poniższa pętla pozwoli nam wyświetlić wszystkie zgody znajdujące się w obiekcie Newsletter:

 Jeżeli interesuje nas pokazanie wszystkich kanałów znajdujących się w danej zgodzie to warto najpierw przypisać ich ilość do konkretnej zmiennej liquidowej. W każdej pojedynczej zgodzie kanały możemy znaleźć w obiekcie Channels.

Teraz wystarczy tylko napisać prostą pętle „for” Poniżej przykład wykorzystujący listę.

 

Szablon Agat

1.Zmień pętlę for wyświetlającą checkboxy ze zgodami w pliku ’footer.html’, który znajduje się w folderze ’partials/common’

 

2.W pliku ’init.js’ uzupełnij funkcję uiValidateForm o walidację pól kanałów. Plik znajduje się w folderze 'js’.

 

3.Aby walidacja działała poprawnie, dodaj dodatkowe funkcje w pliku ’init.js’, w obiekcie application (uicheckIfParentChecked, uicheckIfTosChannelChecked)

 

4.Wywołaj nowe funkcje w pliku ’init.js’, w obiekcie application.events

 

5.Dodaj tłumaczenia:
MainConsentWarning: „Wyraź zgodę”
– ChannelWarning: „Wybierz przynajmniej jeden kanał”

 

6.Uzupełnij plik ’480plus.css’, który znajduje się w folderze 'css’, o style:

 

Szablon Bursztyn

W pliku homepage.html proszę zastąpić poniższy kod:

następującym:

 

Szablon Opal

W pliku homepage.html proszę zastąpić poniższy kod:

następującym:

 

Kanał e-mail

Jeśli wprowadziłeś powyższe zmiany, a w swoich zgodach posiadasz tylko kanał e-mail i chcesz zaoszczędzić zbędnego klikania swoim klientom to poniżej znajduje się instrukcja co należy zmienić w kodzie. Te zmiany sprawią, że kanał e-mail będzie zawsze zaznaczony i nie będzie się go dało odznaczyć.

Szafir

Plik init-ui2.js

Znajdź funkcję toggleChannels. W niej jest zdeklarowana zmienna var inputs = container.find('[name=channelKey]’);. Zmień ją na var inputs = container.find('[name=channelKey]:not([type=hidden])’);

Pliki home.html, sign-up-no-address.html, common/address-form-register-full.html, customer-profile/your-account/employee-update.html, order/cart.html, __loginconsents.liquid

Znajdź w tych plikach taki fragment kodu:

Usuń go, a w jego miejsce wklej ten fragment kodu:

Agat

Pliki partials/cart/delivery-and-payment.html, partials/common/footer.html, partials/common/registration-consents.html, __loginconsents.liquid

Znajdź w tych plikach taki fragment kodu:

Usuń go, a w jego miejsce wklej ten fragment kodu:

Bursztyn

Plik init.js

Wyszukaj frazę channels i zamień wszystkie jej wystąpienia w tym pliku na channels:not(.only-email)

Pliki homepage.html, customer/registration.html, order/stepsummary.html, __loginconsents.liquid

Znajdź w tych plikach taki fragment kodu:

    • {% for chn in tos.Channels -%}

{% endfor -%}

{% endif -%}

Usuń go, a w jego miejsce wklej ten fragment kodu:

    • {% for chn in tos.Channels -%}

    • {% if onlyEmail == false -%} {% else -%} {% endif -%}

{% endfor -%}

{% endif -%}

Opal

Plik init.js

Wyszukaj frazę channels-list i zamień wszystkie jej wystąpienia w tym pliku na channels-list:not(.only-email)

Pliki homepage.html, customer/registration.html, order/stepsummary.html, __loginconsents.liquid

Znajdź w tych plikach taki fragment kodu:

    • {% for chn in tos.Channels -%}

{% endfor -%}

{% endif -%}

Usuń go, a w jego miejsce wklej ten fragment kodu:

    • {% for chn in tos.Channels -%}

    • {% if onlyEmail == false -%} {% else -%} {% endif -%}

{% endfor -%}

{% endif -%}

Czy ten artykuł był pomocny?