Skocz do zawartości

BRĄZOWY PORADNIK do pól własnych towarów i globalnych, tagów, modyfikatorów

Polecane posty

KWESTIE ORGANIZACYJNE

1. PROSZĘ NIC NIE DOPISYWAĆ W TYM WĄTKU żeby nie robił się bałagan - WSZYSTKIE POSTY BĘDĄ USUWANE!

2. Wszelkie pytania, błędy, sugestie odnośnie poradnika proszę zgłaszać zakładając nowy wątek w dziale "Pomocna dłoń".

3. Poradnik może wymagać uzupełnienia. Postaram się dopisywać na bieżąco ale wszelka pomoc jest mile widziana. Gdyby ktoś był chętny do pomocy w pisaniu/aktualizowaniu poradnika, to proszę zgłaszać na moje PW - dodam odpowiednie punkty/przykłady wraz z nickiem autora. Możecie też założyć nowy wątek na forum w dziale pomocna dłoń, a tutaj dodam tylko link do niego – wtedy autor będzie miał możliwość jego bieżącej aktualizacji.

4. Starałem się żeby poradnik był jak najbardziej prawidłowy i aktualny ale mogą zdarzyć się drobne błędy i niedopowiedzenia - dlatego twórca/y poradnika nie odpowiadają za ewentualne błędy

5. Poradnik napisany przez użytkownika/ów Sello - w żaden sposób nie jesteśmy związani z firmą Insert.

6. Skąd się wziął ten poradnik? Bo obiecałem ;)  

Poradnik napisałem na podstawie:

-wyjaśnień i doprecyzowań Bartka, które starałem się cytować w całości bo szkoda czasu na ich przepisywanie – po prostu wyjąłem je z różnych wątków i starałem się ułożyć w jedną i spójną całość,

-forumowiczów – testy, błędy, zapytania, przykłady, itp.

-instrukcji Sello,

-moich własnych testów i sposobów wykorzystania.

7. W liście porad w dziale 8 można dodatkowo poczytać o polach własnych – jako źródło inspiracji do własnych rozwiązań ;) : https://forum.sello.pl/index.php?topic=7271.0

8. Sugestie i błędy odnośnie pól własnych, tagów i modyfikatorów podajemy w tym wątku:

https://forum.sello.pl/index.php?topic=8139.msg52031.0

Jeśli macie jakiś problem z działaniem modyfikatora to radzę tam zajrzeć i sprawdzić czy ktoś nie zgłaszał błędu z nim związanego. Dodatkowo jak przeglądniecie listę sugestii to dowiecie się jakie są obecne ograniczenia w tym zakresie – warto je znać zanim przystąpicie do budowy złożonych warunków.

 

Link to postu

UWAGA - PORADNIK BYŁ PISANY

NA PODSTAWIE WERSJI 1.18.0 SELLO !!!!

Nie zawiera rzeczy wprowadzonych w 1.19.0 i w 1.20.0, a wręcz część z opisanych tutaj rzeczy może nie działać lub źle działać w 1.19.0 !!!

Dopiero jak zapoznam się ze zmianami i je przerobię na własnych przykładach to dopiero wtedy będę mógł przeglądnąć poradnik i uaktualnić, co trochę potrwa.

Dlatego przy stosowaniu się do tego poradnika proszę wziąć pod uwagę zmiany wprowadzone w 1.19 - opisane tutaj:

https://forum.sello.pl/index.php?topic=8354.0

oraz zmiany wprowadzone w 1.20.0 - opisane tutaj:

https://forum.sello.pl/index.php?topic=8802.0

Najważniejsze to:

-brak spacji w nazwach pól własnych towarów i globalnych

-sekwencja eskejpująca

 

 

 

BRĄZOWY PORADNIK

do pól własnych towarów, pól własnych globalnych, tagów, modyfikatorów

(wszystko w jednym bo to wszystko się ze sobą wiąże)

 

 

SPIS DZIAŁÓW wraz z linkami do nich

1. Pola własne towarów

 

2. Pola własne globalne

 

3. Tagi

 

4. Modyfikatory – ogólne informacje

-Dopuszczalna forma zapisu tagów z modyfikatorami

-Łańcuchy modyfikatorów

-Bloki w szablonie

 

5. Modyfikatory – dokładne omówienie każdego modyfikatora, doprecyzowanie, możliwe zastosowania

5.1 Modyfikatory tekstowe

5.2 Modyfikatory warunkowe/logiczne

5.3 Modyfikatory specjalne

 

6. Przykładowe zastosowania pól własnych, tagów i modyfikatorów

6.1 Jeden szablon wiadomości mailowej do dwóch kont aukcyjnych.

6.2 Jeden szablon wiadomości do nieograniczonej liczby kont aukcyjnych.

6.3 Jeden szablon wiadomości dla przesyłek zwykłych i z odbiorem w punkcie.

6.4 Jak rozróżnić sposoby wysyłek w szablonie wiadomości.

6.5 Obejście modyfikatora OR.

6.6 Obejście modyfikatora AND.

6.7 Wykorzystanie modyfikatorów do szablonu uwag na dokumencie w Subiekcie.

6.8 Tekst ostatnia sztuka w aukcji.

6.9 Jak wykorzystać template i value do generowania linków do zdjęć w zależności od zmiennej liczby zdjęć.

6.10 Wykorzystanie modyfikatora template do zmiany ustawień zdjęć w aukcjach - podane przez Bartka

6.11 Porównywanie wyrażeń wieloczłonowych i ich zamiana na wyrażenia jednoczłonowe - WAŻNE!

6.12 Jak usunąć spacje z wartości tagów.

6.13 Jak znormalizować numer nadania do jednego ciągu cyfr.

6.14 Jedna automatyczna tabelka z parametrami towaru dla wszystkich grup towarowych.

6.15 Jak ukryć wartość pola własnego lub innego pola gdy jest puste lub nie ma go w towarze.

6.17 Kolejna metoda do wstawiania obrazków z wykorzystaniem modyfikatorów.

Link to postu

Powrót do spisu działów

 

2. Pola własne towarów

2.1 Do czego służą?

Do umieszczania indywidualnych treści każdego towaru w towaru. Coś jak pola własne w Subiekcie, z tym, że te w Sello są milion razy lepsze :) Dzięki nim możemy:

-mieć jeden szablon opisu do wszystkich aukcji, a mimo to aukcja każdego towaru może mieć zindywidualizowany wygląd,

-zindywidualizować opisy aukcji,

-dodawać własne notatki do towarów dla siebie,

-dodawać do każdego towaru linki ze zdjęciami i filmami w zależności od tego czy dany towar je posiada czy nie,

-możliwości są nieograniczone i wciąż rozbudowywane – przeglądnij wszystkie przykłady poniżej

Proszę pamiętać, że o polach własnych można też poczytać w pomocy do Sello – klawisz F1/zakładka indeks i wyszukaj hasło: pola własne.

 

 

2.2 Pola własne towarów definiujemy je w słowniku pól własnych w module administracja – nadajemy nazwę pola i decydujemy czy po wciśnięciu Entera w polu własnym tekst będzie się umieszczał w nowej linii czy nie – oczywiście po wygenerowaniu zawartości tego pola w szablonie aukcji. Generalnie jeśli w polu własnym chcemy umieszczać kod HTML to ma ta opcja być odznaczona. A jak w polu własnym chcemy umieszczać normalny tekst to powinna być zaznaczona.

Nazwa pola własnego nie może zawierać spacji, a dla bezpieczeństwa lepiej nie stosować w nazwach pól własnych także innych znaków specjalnych. Sugeruję aby uważać ze znakami matematycznymi, np. myślnikiem, który oznacza minus w matematyce i nie wiadomo czy przypadkiem w którejś z następnych wersji Sello nie zostanie wykorzystany do jakiś operacji matematycznych ;) Małe i wielkie litery są dopuszczalne.

 

 

2.3 Pola własne towarów znajdują się w module towary w każdym towarze na zakładce cechy – w tym miejscu można dodawać/zmieniać/usuwać/edytować pola własne w każdym towarze indywidualnie. Dwuklikiem/Enterem otwieramy pole własne i się otwiera w osobnym okienku. Pola własne można też edytować bezpośrednio na gridzie – czyli wpisywać zawartość pola bez konieczności otwierania go w osobnym okienku – super zajebista sprawa wpływająca na szybkość pracy :) Wysokość wierszy na gridzie można regulować, żeby lepiej widzieć zawartość pól własnych.

Pola własne można też dodawać/zmieniać/usuwać/edytować zbiorczo na liście towarowej– wystarczy zaznaczyć na liście towarowej wybrane towary, ppm i zmiany zbiorcze. Dodatkowo podczas wykonywania zmian zbiorczych na towarach istnieje możliwość wczytania pól własnych lub pól własnych wraz z ich zawartością z innego towaru. W ten sposób można błyskawicznie kopiować zawartość pól własnych z jednych towarów na drugie. A żeby było jeszcze piękniej to można wczytane pola własne i/lub ich zawartość modyfikować/poprawiać/usuwać, dodawać nowe pola własne lub usunąć całe pola własne, których nie chcemy kopiować. Jest to jedno z najważniejszych usprawnień w pracy nad towarami w Sello i należą się Sello Team duże podziękowania za dodanie takiej możliwości. Dzięki temu można nanosić całą masę zmian w ekspresowym tempie. Kolejne super ułatwienie w pracy z Sello.

 

 

2.4 Podczas usuwania pola własnego może wyskakiwać okienko z prośbą o potwierdzenie jego usunięcia. Domyślnie to potwierdzenie jest włączone, a opcja do jego wyłączenia znajduje się w module Administracja w parametrach użytkownika. Trzeba się zalogować do Sello na wybranego użytkownika i przejść do parametrów użytkownika i ustawić sobie tą opcję jak chcemy.

 

 

2.5 Uwaga - jeśli zmienimy nazwę pola własnego w słowniku pól własnych to należy ją podmienić na właściwą we wszystkich miejscach gdzie wykorzystaliśmy tag tego pola własnego (np. w opisie aukcji) gdyż sam się nie zmieni. Dlatego zmiana nazwy pola własnego generalnie nie jest zalecana, chyba że pamiętamy w których miejscach użyliśmy tag tego pola własnego.

 

 

2.6 Zawartość pól własnych umieszczamy w wybranych miejscach posługując się tagami pól własnych towarów. W zależności od miejsca w Sello tagi możemy wstawić z rozwijanej listy lub wpisać je ręcznie w wybrane pole, okienko, itp.

 

Przykładowy tag pola własnego wygląda tak:

[Towar::PW::nazwa_pola]

Towar::PW – stałe określenie pola własnego towarów

nazwa_pola – w miejscu nazwa pola znajduje się właściwa nazwa konkretnego pola własnego (bez spacji).

 

 

2.7 Cechy pól własnych towarów

-do każdego towaru można dodać dowolną liczbę pól własnych

-ograniczenie do 4000 znaków w pojedynczym polu własnym

-w polach własnych można się odwoływać do innych pól własnych za pomocą ich tagów oraz do innych tagów do maksymalnie 3-ech poziomów w głąb –wyjaśnione dokładniej w punkcie 3.3 poniżej

-pola własne można edytować w każdym towarze oddzielnie oraz za pomocą zmian zbiorczych

-w polach własnych można umieszczać tekst i kod HTML

-w nazwach pól własnych nie wolno stosować spacji i lepiej nie stosować znaków specjalnych

 

 

2.8 Lista pól własnych w każdym towarze lub zmianach zbiorczych może być sortowana po kolumnie nazwa pola własnego – wystarczy kliknąć dwa razy na kolumnie. Lista pól własnych jest też parametryzowana jak każdy inny grid w Sello – można wybrać kolory, czcionki na liście, itp.

 

Link to postu

Powrót do spisu działów

 

3. Pola własne globalne

1. Zasada działania podobna do pół własnych towarów opisanych w punkcie 1, z tym że wartości tych pól przechowywane są bezpośrednio w ich słowniku.

 

2. Przykład jak wykorzystać pola własne globalne

https://forum.sello.pl/index.php?topic=8534.0

 

 

Link to postu

Powrót do spisu działów

 

3. Tagi

3.1 Budowa tagu

Tak wygląda przykładowy tag statyczny:

[Towar::Stan] 

a tak przykładowy tag dynamiczny

[Towar::PW::pole1]

Budowa tagu została ładnie opisana w pomocy do Sello – klawisz F1/zakładka indeks i wyszukaj hasło: tag, więc nie będę tego tutaj powtarzał. W skrócie tagi wstawiamy w wybrane miejsca w Sello i podczas generowania (np. aukcji z szablonu) tagi są zamieniane na ich wartość – nazywa się to parsowaniem tagów.

 

Żeby parser rozpoznał tag to musi się on znajdować w bazie Sello. Czyli wszystkie tagi statyczne znajdują się już w bazie Sello i z nimi nie musisz nic robić. Ale tagi dynamiczne tworzone na podstawie pól własnych towarów dodajesz sam do słownika pól własnych towarów. Jeśli w słowniku pól własnych towarów nie ma dodanego jakiegoś pola własnego to parser podczas przetwarzania taga tego pola własnego nie będzie wiedział, że to jest tag i potraktuje go jako zwykły tekst. Dla przykładu - jeśli w szablonie aukcji wpiszesz ręcznie taki tag:

[Towar::PW::pole1]

to żeby w jego miejsce wstawiła się wartość pola własnego o nazwie pole1 - to w słowniku pól własnych musi być pole własne o nazwie pole1, a nie np. pole_1. Jeśli nie będzie w słowniku pola własnego o nazwie pole1 to parser potraktuje zapis tego taga jak zwykły tekst i w szablonie aukcji wstawi Ci się tekst:

[Towar::PW::pole1]

 

 

3.2 Miejsca gdzie można korzystać z tagów, bo nie wszystkie są oczywiste:

-szablony aukcji – zakładka opis

-w szablonach aukcji w polu tytułu, dodatkowych informacjach o aukcjach – należy wpisać ręcznie wybrany tag w tych polach

-szablony aukcji – w polu ilość

-szablony opisów – zakładka opis

-szablony wiadomości mailowych

-w polach własnych towarów

-w blokach

Generalnie w szablonach wiadomości i aukcji wybieramy tagi z lewego menu – drzewka tagów. Podobnie niektóre pola mają obok rozwijaną strzałkę i można wybrać dany tag. W niektórych miejscach nie ma natomiast żadnego bocznego menu lub strzałki do wyboru tagu ale można jego nazwę wpisać ręcznie – np. w szablonie aukcji w tytule aukcji.

 

 

3.3 Przy umieszczaniu tagów w miejscach korzystających z formatowania HTML (szablony aukcji, opisów, wiadomości, opisy towarów) – należy bezwzględnie uważać podczas kopiowania tekstu do tagów. Najlepiej wpisywać tekst ręcznie, kopiować z pól czysto tekstowych lub przepuścić przez plik txt. W przeciwnym razie do wyrażeń w tagach mogą wkraść się niepożądane formatowania z programów tekstowych, np. worda, które mogą wpływać na generowane wyniki!

 

 

3.4 Zagnieżdżanie tagów – dawne pola w polach ;)

Sposób zagnieżdżania tagów jest następujący - cytując Bartka:

„Parser tagów wyszukuje i przetwarza najpierw tagi wewnątrzne, ze wszystkimi modyfikatorami. W kolejnym przebiegu sprawdza czy zostały jeszcze jakieś tagi i je przetwarza. I tak 3 razy.

Jeśli zatem zrobisz coś takiego:

[Towar::Nazwa|template=`[Towar::PW::promocja|upper|is=`T`|then=`PROMOCJA `]{value}`|upper]

tag będzie przetwarzany następująco:

- najpierw rozwinięty będzie wewnętrzny tag i powstanie coś takiego (zakładam że w polu własnym promocja jest litera "t", zatem wygeneruje się napis PROMOCJA:

[Towar::Nazwa|template=`PROMOCJA {value}`|upper]

W drugim przebiegu parsera przetworzony będzie tag Towar::Nazwa (Buty zimowe) i wyjdzie:

PROMOCJA BUTY ZIMOWE.

 

 

3.5 Liczniki własne

a) Jakie są przykładowe zastosowania liczników własnych?

Cytując Bartka:

„Numerowanie transakcji dodawanych ręcznie, aby zamiast nazwy Transakcja dodana ręcznie występującej tysiąckrotnie mieć np: Transakcja 1, Transakcja 2, Transakcja 3... Odpowiedni tag można wpisać w polu z szablonem nazwy dla pola transakcja Dotyczy w parametrach domyślnych transakcji w administracji.”

 

b) liczniki własne używamy przede wszystkim w:

-transakcjach dodawanych ręcznie

-grupach transakcji

Jak ktoś znajdzie jakieś inne przydatne miejsce gdzie można ich jeszcze użyć to dajcie znać.

 

 

3.6 Jeśli szablon aukcji lub wiadomości nie parsuje się to cytując Bartka należy:

https://forum.sello.pl/index.php?topic=7981.msg51158#msg51158

 

Pamiętaj też, że pola własne wykorzystane w tagach muszą być dodane w słowniku pól własnych. Jeśli wpisywałeś tagi ręcznie (np. w szablonach wiadomości) to sprawdź czy nie zrobiłeś jakiejś literówki w nazwie pola własnego.

 

 

3.7 Podczas umieszczania tagów w różnych miejscach w Sello należy pamiętać o kontekście tych tagów. Kontekst tagów oznacza, że dane miejsce musi być w jakiś sposób powiązane z danymi, które dany tag obsługuje. Na przykład w wiadomości do nowo utworzonej transakcji nie można się posługiwać tagami do paczki bo paczka jeszcze nie istnieje. Jak będziecie używać tagów to w moment to załapiecie :)

Link to postu

Powrót do spisu działów

 

4. Modyfikatory - ogólne informacje

4.1 Budowa modyfikatora

To wszystko co znajduje się w tagu za znakiem pipe | (pionowej linii) nazywamy modyfikatorem – ładnie opisane w pomocy do Sello - klawisz F1/zakładka indeks i wyszukaj hasło: modyfikator.

 

Pytanie - jeśli modyfikatory zostały zaimplementowane w Sello na podstawie gotowych rozwiązań to czy gdzieś można poczytać o tych rozwiązaniach bardziej szczegółowo, zobaczyć więcej przykładów, itp.

Cytując Bartka:

„Wzorowaliśmy się na działaniu modyfikatorów w smarty oraz modx, aczkolwiek cały kod jest pisany przez nas, więc różnice w działaniu mogą się pojawić.”

 

 

4.2 Dopuszczalna forma zapisu tagów z modyfikatorami

a) Proszę pamiętać, że w modyfikatorach używamy apostrofów

-tych ` - to jest apostrof z pomocy Sello, który znajduje się na klawiaturze z lewej strony od jedynki pod klawiszem Esc

-a nie tych ' lub tych ‘ - to jest apostrof z klawiatury, który znajduje się na klawiaturze razem z cudzysłowem " obok klawisza Enter, użycie tych nie zadziała!!!

 

b) Również należy uważać na stosowanie w tagach znaków nawiasów kwadratowych i nie umieścić przez przypadek dwóch lub więcej nawiasów obok siebie, np. w tej formie [[ - może to spowodować zapętlenie się Sello w nieskończoność i konieczny restart Sello! Sprawdziłem u siebie ;)

 

c) Zapis tagu w wielu wierszach nie jest obecnie oficjalnie wspierany ale w:

-szablonach wiadomości

-opisie w aukcji

-polach własnych

dla poprawy czytelności taga i modyfikatorów można tag w postaci jednej ciągłej linii, np.:

[Towar::PW::kolor|is=`czerwony`|then=`[Towar::PW::opis_czerwony]`|else=`[Towar::PW::opis_standardowy]`]

zapisać także jako kilka wierszy ale dzieląc go tylko w odpowiednich miejscach, czyli znak pipe | (pionowej linii) musi być na początku wierszy:

[Towar::PW::kolor|is=`czerwony`
|then=`[Towar::PW::opis_czerwony]`
|else=`[Towar::PW::opis_standardowy]`]

Ważne żeby na końcu każdej linii był tylko Enter i żaden inny znak czy spacja. Tag można dzielić na kilka linii tylko w tych wybranych miejscach. Dzieląc go w innych miejscach zostanie potraktowany jako zwykły tekst i się nie wygeneruje lub co gorsza wygeneruje zły wynik dla modyfikatorów warunkowych!

Ja stosuję zapis ze znakiem | na początku każdej linii gdyż jest on wg mnie najbardziej czytelny niż jedna długa ciągła linia :)

Jeśli macie wątpliwości to nic nie stoi na przeszkodzie żeby przygotować sobie zapis w wielu wierszach, a przed jego zastosowaniem połączyć w jedną ciągłą linię. Zawsze to się przyjemniej i czytelniej pracuje na wielu liniach :)

 

d) Wpisując tagi w małe okienka, które są zmorą programów Insertu ;) najłatwiej jest przygotować sobie pełny tag w dowolnym innym dużym polu (np. notatki, szablonie aukcji, maila) lub w pliku tekstowym txt i dopiero potem wkleić go do wymaganego małego okienka w Sello, np. szablon uwag na dokumencie w parametrach zewnętrznego systemu sprzedaży. Będzie szybciej i czytelniej...

 

e) Używając zapisu tagów w szablonie aukcji w zakładce "Edycja kodu HTML" - jeśli przejdziemy na zakładkę "Edytor graficzny" i wrócimy do zakładki "Edycja kodu HTML" to cały wpisany przez nas tag zostanie podzielony przez edytor na wiele linii. Przy skomplikowanych budowach tagów jest to mega denerwujące dlatego, żeby nie musieć układać zapisu tagów przed każdym ich poprawieniem to najlepiej przygotować sobie zapis tagów w pliku txt i stąd wklejać go do kodu HTML w szablonie aukcji. Jeśli musimy nanieść jakieś poprawki to zamiast układać w edytorze cały kod od nowa, łatwiej nanieść poprawki w pliku txt i podmienić cały zapis tagów w edytorze. I problem rozrzucania zapisu tagów w edytorze znika ;)

 

 

4.3 Łańcuchy modyfikatorów

Oficjalnie nie ma limitu modyfikatorów w łańcuchu. Ja generowałem tagi z wieloma modyfikatorami i działały jak należy. Również można w jednym łańcuchu użyć tych samych modyfikatorów po kilka razy. Cytując Bartka:

„Wyjątkiem jest tag template, który jest wykonywany niezależnie od innych, bo definiuje szablon tagu i jest wykonywany na samym końcu, niezależnie od miejsca, w którym został użyty.

Modyfikatory przetwarzane są kolejno od lewej do prawej. Wartość z modyfikatora po lewej jest przesyłana do modyfikatora kolejnego po prawej (stąd znak pipe | oddzielający modyfikatory, który oznacza przekazywanie wyniku do kolejnego "procesora"). Dodatkowo modyfikatory logiczne przekazują wynik logiczny, czyli np is, contains przekazują wynik porównania do kolejnego np show, który w zależności czy wynik był prawdziwy czy nie wyświetlają bądź ukrywają treść tagu.”

 

 

4.4 Bloki w szablonie

Proszę pamiętać żeby w nazwach bloków nie stosować spacji. Jeśli zachodzi taka potrzeba to należy użyć podkreślnika _

 

Miejsca gdzie można użyć bloków - cytując Bartka:

„Bloki mogą być zdefiniowane gdziekolwiek w szablonie, ale w obrębie tego szablonu w którym mają być użyte. Na początku przetwarzania są one wyszukiwane i usuwane z szablonu (zapamiętywane są na tymczasowej liście). Dodaliśmy je po to, aby nie trzeba było zbytnio rozciągać tagów jeśli trzeba przetworzyć jakiś dłuższy fragment tekstu. Przechowywanie bloków globalnych np w polach własnych globalnych w chwili obecnej nie zadziała (pomijając już, że jeszcze nie ma globalnych PW   ), bo jak wspominałem bloki są wyszukiwane przed rozpoczęciem parsowania. Aby to działało bloki musiały by być wyszukiwane przy każdym przebiegu parsera - jeśli nie będzie przeciwwskazań spowodowanych szybkością działania to pomyślimy o takiej możliwości.”

Link to postu

Powrót do spisu działów

 

 

5. Modyfikatory – dokładne omówienie każdego modyfikatora, doprecyzowanie, możliwe zastosowania

Sello Team dodało sporo modyfikatorów ale jak dokładnie działają i co z nimi można tak naprawdę zrobić? ;) Wyjaśnienie wszystkich modyfikatorów wraz z przykładami znajduje się pomocy Sello – F1. Tutaj będę umieszczał doprecyzowania, dokładniejsze wyjaśnienia, dodatkowe przykłady, ewentualne efekty zastosowania oraz możliwe wykorzystania każdego modyfikatora – jako wskazówki co można z nim w ogóle zrobić. Konkretne pełne przykładowe zastosowania tagów i modyfikatorów w dziale 6. Jeśli  ktoś ma jakiś pomysł na wykorzystanie modyfikatorów i chce się podzielić to zakładajcie wątek w pomocnej dłoni, a ja tutaj go dolinkuję/dopiszę.

 

5.1 Modyfikatory tekstowe

Ogólnie służą do formatowania tekstu. Jeśli więc chcemy żeby w jakimś miejscu w aukcji lub w wiadomości mailowej do klienta dane wpisane przez klienta (np. adres dostawy) wyglądały w miarę jednakowo to będziemy korzystać z tych modyfikatorów. Również do wszystkiego co chcecie uwypuklić klientowi w mailu lub w aukcji bez konieczności formatowania tekstu. Przydają się także do modyfikatorów warunkowych żeby ujednolicić litery w warunku i dopiero potem porównywać warunek.

 

a) upper

-formatowanie tekstu – np. nick klienta żeby był łatwiej czytelny dla Was lub adres dostawy, sposób płatności, czyli  wszystko co chcecie uwypuklić klientowi wielkimi literami :)

-ujednolicanie liter do warunkowych

 

b) lower

-formatowanie tekstu – np. nick klienta żeby był łatwiej czytelny dla Was lub adres dostawy żeby zawsze drukował się z małych liter bo wielkie litery zajmują więcej miejsca, itp.

-ujednolicanie liter do warunkowych – przykład Bartka - np żeby sprawdzić czy wartość tagu jest "Polska" ale uwzględniając również "polska" i "POLSKA" można zrobić coś takiego:

[Klient::AdresWysylkowy::Panstwo|lower|is=`polska`|...]

czyli najpierw zmniejszyć litery, a potem je porównać.

 

c) spacify

 

d) strip

-niezbędny w wyrażeniach wieloczłonowych jeśli takie wyrażenia musimy zastosować w modyfikatorach warunkowych, np.

[Paczka::Dostawa|strip=`_`|is=`List_polecony_ekonomiczny`|then=...

-UWAGA - proszę obowiązkowo zapoznać się z punktem 6.11 poniżej

-wykorzystywany do usuwania z wartości tagów spacji - opisane w pkt 6.12 poniżej

 

e) truncate

-formatowanie tekstu gdy musimy ograniczyć jego długość

-do warunkowych - przycinanie np. numerów

 

f) capitalize

-do warunkowych

 

g) title

 

h) replace

-do warunkowych

-uwaga – są obecnie problemy z zamienianiem spacji - obejście podane w pkt 6.12 poniżej

-do zamiany znaków specjalnych, np. przecinka w cenie na inny znak-np kropkę - przykład tutaj: https://forum.sello.pl/index.php?topic=8159.0

-inne problemy z replace:

https://forum.sello.pl/index.php?topic=9105.0

 

i) nl2br

-w szablonach aukcji gdy posługujemy się kodem HTML

Link to postu

Powrót do spisu działów

 

5.2 Modyfikatory warunkowe/logiczne

Tutaj zaczyna się prawdziwa zabawa – generują określony efekt na podstawie podanych warunków lub cytując Bartka:

„Dodatkowo modyfikatory logiczne przekazują wynik logiczny, czyli np is, contains przekazują wynik porównania do kolejnego np show, który w zależności czy wynik był prawdziwy czy nie wyświetlają bądź ukrywają treść tagu.”

„Są one traktowane literalnie, czyli napis musi być dokładnie taki jak porównujesz, ze spacjami itp. np. is=`buty zimowe` nie zadziała jeśli w tagu masz wartość "buty dobre zimowe".”

A na pytanie jak długie ciągi znaków mogą być porównywane przez modyfikatory logiczne, Bartek odpowiedział:

„Nie są przez nas ograniczone. Są one traktowane literalnie, czyli napis musi być dokładnie taki jak porównujesz, ze spacjami itp. np. is=`buty zimowe` nie zadziała jeśli w tagu masz wartość "buty dobre zimowe".”

 

a) is

-oznacza „jest” czyli jeśli wartość tagu jest/spełnia podany przez nas warunek to tag wygeneruje określony wynik

-UWAGA - dla wyrażeń wieloczłonowych - proszę obowiązkowo zapoznać się z punktem 6.11 poniżej

 

b) contains

-oznacza „zawiera” czyli jeśli wartość tagu zawiera podany przez nas warunek to tag wygeneruje określony wynik

-UWAGA - dla wyrażeń wieloczłonowych - proszę obowiązkowo zapoznać się z punktem 6.11 poniżej

 

c) neg

-umieszczony za is lub contains wprowadza negację warunku. Najlepiej czytać go w całości z is lub contains jako isnot lub containsnot (czyli nie jest lub nie zawiera), np.:

[Klient::AdresWysylkowy::Panstwo|is=`polska`|neg|...]

czytamy jako:

jeśli państwo w adresie wysyłkowym klienta NIE jest polska...

-cytując Bartka:

„neg po prostu neguje wynik porównania operatora is, contains.”

 

d) then

-czytamy go jako „wtedy”

-wykorzystywany z is i contains

-przykład [Klient::AdresWysylkowy::Panstwo|is=`polska`|then=`Witamy Polaka`...]

czytamy jako:

jeśli państwo w adresie wysyłkowym klienta jest polska to wtedy wstaw tekst Witamy Polaka

-cytując Bartka:

„operator then powoduje zastąpienie aktualnej wartości tagu inną wartością.”

 

e) else

-czytamy go jako „w przeciwnym razie” czyli jeśli wcześniejszy warunek nie był spełniony to...

-wykorzystywany z is i contains

-przykład

[Klient::AdresWysylkowy::Panstwo|is=`polska`|then=`Witamy Polaka`|else=`Witamy obcokrajowca`]

czytamy jako:

jeśli państwo w adresie wysyłkowym klienta jest polska to wtedy wstaw tekst Witamy Polaka, w przeciwnym razie wstaw tekst Witamy obcokrajowca

 

f) show

-dobry do pokazywania lub zakrywania różnych treści

 

g) hide

-dobry do pokazywania lub zakrywania różnych treści

 

h) default

-super do robienia parametrów towaru w opisach towarów, które są później parsowane podczas wystawiania aukcji

Link to postu

Powrót do spisu działów

 

5.3 Modyfikatory specjalne

a) template i value

–template generuje wartość taga w miejscu value, tylko wtedy gdy dany tag istnieje i ma podaną wartość

-zapoznajcie się z przykładami podanymi poniżej to łatwiej będzie Wam zrozumieć jego działanie, sam na początku miałem z tym problem ;)

-dodatkowe wytłumaczenie - cytując Bartka:

„{value} można używać w modyfikatorze template i onzacza po prostu miejsce, w którym będzie wstawiona wartość tagu. Innymi słowy, jesli chcesz aby wartość pola własnego była umieszczona w nawiasach piszesz:

[Towar::PW::kolor|template=`( {value} )`]

.

Dlaczego nie napisać po prostu ([Towar::PW::kolor])? Bo jeśli w towarze nie będzie pola własnego kolor, to otrzymasz w drugim przypadku puste nawiasy: (  )

Modyfikator szablonu template nie wygeneruje samych nawiasów jeśli wartość tagu (czyli to co idzie do {value}) będzie pusta.

 

Idąc dalej, operator then powoduje zastąpienie aktualnej wartości tagu inną wartością. W cytowanym fragmencie jest to np:

then=`na magazynie`. Cokolwiek było wartością tagu zostanie zamienione na wartość na magazynie. Wtedy jako {value} zostanie użyta nowa wartość przypisana przez modyfikator then, a nie pierwotna wartość tagu.

Jak widzisz, [Towar::Stan] jest tam użyty tylko do porównania z wartością 0, nie zaś do wyświetlenia samego stanu.

 

Domyślnie szablonem dla większości tagów jest `{value}`. Dla zdjęć jest to np `<img src="{value}" />.”

 

-Przykład jak ukryć wartość pola własnego lub innego pola gdy jest puste lub nie ma go w towarze w pkt 6.15.

-Przykład Bartka jak wykorzystać template i value do generowania linków do zdjęć w zależności od zmiennej liczby zdjęć w pkt 6.9.

-Przykład jak wykorzystać template i value do generowania automatycznej tabelki z parametrami towaru w pkt 6.14

 

Link to postu

Powrót do spisu działów

 

6. Przykładowe zastosowania pól własnych, tagów i modyfikatorów

6.1 Jeden szablon wiadomości mailowej do dwóch kont aukcyjnych.

Jest on podany w pomocy w samym Sello – ja go tutaj tylko skopiowałem z pomocy – dzięki Team Sello za jego stworzenie :) Dobry przykład na wykorzystanie modyfikatorów i pokazanie ich możliwości.

 

{Blok=`konto_AAA`}
Dziękujemy za zakupy w naszej firmie A1
Towary zostaną wysłane następnego dnia po zaksięgowaniu wpłaty
{/Blok}

{Blok=`konto_BBB`}
Odnotowaliśmy właśnie zakup na jednej z naszych aukcji. Dziękujemy bardzo za zainteresowanie naszą ofertą.
Towary wysyłamy do godziny 17 w dniu otrzymania wpłaty.
{/Blok}

Witaj [Klient::Nick|upper]!
[sprzedawca::Nick|is=`aaa1`|then=`[szablon::Blok::konto_AAA]`|else=`[szablon::Blok::konto_BBB]`]

Lista towarów to:
[Transakcja::ListaTowarow]

Zapraszamy ponownie
[sprzedawca::Nick]

 

 

6.2 Jeden szablon wiadomości do nieograniczonej liczby kont aukcyjnych.

{Blok=`konto_1`}
Tutaj podajemy treść wiadomości do konta o nazwie konto_1
{/Blok}

{Blok=`konto_2`}
Tutaj podajemy treść wiadomości do konta o nazwie konto_2
{/Blok}

{Blok=`konto_3`}
Tutaj podajemy treść wiadomości do konta o nazwie konto_3
{/Blok}
itd.

[sprzedawca::Nick|is=`konto_1`|then=`[szablon::Blok::konto_1]`|else=``]
[sprzedawca::Nick|is=`konto_2`|then=`[szablon::Blok::konto_2]`|else=``]
[sprzedawca::Nick|is=`konto_3`|then=`[szablon::Blok::konto_3]`|else=``]
itd.

Uwaga - dla grup transakcji zgrupowanych z kilku różnych kont, grupa transakcji przyjmie jako wartość tagu [sprzedawca::Nick] nazwę któregoś ze zgrupowanych kont, chyba tego które jest wcześniej w alfabecie. Czyli zostanie spełniony tylko jeden warunek i wiadomość wyśle się przyjmując wartość któregoś ze zgrupowanych kont.

 

 

6.3 Jeden szablon wiadomości dla przesyłek zwykłych i z odbiorem w punkcie

a) dla płatnych z góry:

{Blok=`odbiór_w_punkcie`}
Twoja paczka została wysłana na adres wybranej placówki
{/Blok}

{Blok=`pozostałe_przesyłki`}
Twoja paczka została wysłana na adres [Paczka::AdresWysylki]
{/Blok}

[Paczka::Dostawa|strip=`_`
|is=`odbiór_w_punkcie_e_przesyłka`
|then=`[szablon::Blok::odbiór_w_punkcie]`
|else=`[szablon::Blok::pozostałe_przesyłki]`] 

Zamiast "odbiór_w_punkcie_e_przesyłka" wpisujesz swoją nazwę ze słownika dla odbioru w punkcie i zamiast spacji dajesz podkreślniki _ - wyjaśnione w pkt 6.11 poniżej.

 

b) dla płatnych za pobraniem

{Blok=`odbiór_w_punkcie_za_pobraniem`}
Twoja paczka została wysłana na adres wybranej placówki za pobraniem w wysokości[Paczka::Pobranie]
{/Blok}

{Blok=`pozostałe_przesyłki_za_pobraniem`}
Twoja paczka została wysłana na adres [Paczka::AdresWysylki] za pobraniem w wysokości[Paczka::Pobranie]
{/Blok}

[Paczka::Dostawa|strip=`_`
|is=`odbiór_w_punkcie_e_przesyłka_za_pobraniem`
|then=`[szablon::Blok::odbiór_w_punkcie_za_pobraniem]`
|else=`[szablon::Blok::pozostałe_przesyłki_za_pobraniem]`] 

Zamiast "odbiór_w_punkcie_e_przesyłka_za_pobraniem" wpisujesz swoją nazwę ze słownika dla odbioru w punkcie za pobraniem i zamiast spacji dajesz podkreślniki _ - wyjaśnione w pkt 6.11 poniżej.

 

c) W powyższych blokach możesz sobie wprowadzić jakie chcesz treści maili, a następnie w parametrach/wiadomości automatyczne, w sekcji wysłano paczkę - przypisujesz jeden szablon do paczek za pobraniem, a drugi do paczek płatnych z góry i gotowe.

Link to postu

Powrót do spisu działów

 

6.4 Jak rozróżnić sposoby wysyłek w szablonie wiadomości

Na przykład można tak ustawić sobie nazwy wszystkich "Dostaw" w słowniku dostaw aby:

-przesyłki kurierskie - miały w swojej nazwie wyraz "Przesyłka" i nigdy nie miały w swojej nazwie wyrazów: paczka lub list,

-paczki pocztowe - miały w swojej nazwie wyraz "Paczka" i nigdy nie miały w swojej nazwie wyrazów: przesyłka lub list,

-listy pocztowe - miały w swojej nazwie wyraz "List" i nigdy nie miały w swojej nazwie wyrazów: przesyłka lub paczka,

Pamiętać o wielkich literach bo is i contains rozróżniają je!

Wtedy każdy rodzaj dostawy ze słowem Przesyłka to przesyłka kurierska, Paczka to paczka pocztowa, a List to list pocztowy   i wtedy można w szablonie wiadomości zapisać następująco:

{Blok=`Przesyłka`}
Wiadomość jaka wyśle się do klienta jeśli sposób dostawy zawiera wyraz „Przesyłka”
{/Blok}
{Blok=`Paczka`}
Wiadomość jaka wyśle się do klienta jeśli sposób dostawy zawiera wyraz „Paczka”
{/Blok}
{Blok=`List`}
Wiadomość jaka wyśle się do klienta jeśli sposób dostawy zawiera wyraz „List”
{/Blok} 

[Paczka::Dostawa|contains=`Przesyłka`|then=`[Szablon::Blok::Przesyłka]`|else=``]
[Paczka::Dostawa|contains=`Paczka`|then=`[Szablon::Blok::Paczka]`|else=``]
[Paczka::Dostawa|contains=`List`|then=`[Szablon::Blok::List]`|else=``]
 

Czyli jeśli [Paczka::Dostawa] zawiera wyraz "Przesyłka" to uznajesz ją za "kurierską" i generujesz wiadomość z bloku "Przesyłka". Możesz też w nazwie przesyłek kurierskich umieścić wyraz "kurierska" i wyszukiwać po niej. A ponieważ is i contains rozróżniają dokładny zapis to do rozróżniania sposobów dostaw można wykorzystać jeszcze, np. dwie spacje jedna obok drugiej (ale tutaj proszę pamiętać o punkcie 6.11) lub wielkie i małe litery. Sprawdź też poniższy przykład 6.5

 

6.5 Obejście modyfikatora OR.

a) Prosty OR dla jednego, tego samego taga,  można zrealizować listując wiele warunków jeden pod drugim na zasadzie:

{Blok=`KurierKEX`}
Wiadomość jaka wyśle się do klienta jeśli sposób dostawy to kurier K-EX
{/Blok}
{Blok=`KurierDPD`}
Wiadomość jaka wyśle się do klienta jeśli sposób dostawy to kurier DPD
{/Blok}
{Blok=`KurierUPS`}
Wiadomość jaka wyśle się do klienta jeśli sposób dostawy to kurier UPS
{/Blok}

[Paczka::Dostawa|strip=`_`|is=`Przesyłka_KEX`|then=`[Szablon::Blok::KurierKEX]`|else=``]
[Paczka::Dostawa|strip=`_`|is=`Przesyłka_DPD`|then=`[Szablon::Blok::KurierDPD]`|else=``]
[Paczka::Dostawa|strip=`_`|is=`Przesyłka_UPS`|then=`[Szablon::Blok::KurierUPS]`|else=``]
 

Trzeba tylko pamiętać żeby nie stworzyć sytuacji w której dwa warunki mogłyby być prawdziwe bo wygenerują się dwa spełnienia warunków i dwie wiadomości jedna pod drugą. Natomiast jeśli każdy warunek jest inny to powinna się wygenerować tylko jedna treść maila. Powyższy przykład wykorzystuje rozwiązanie z punktu 6.11 dla wyrażeń wieloczłonowych. Można tutaj jeszcze wykorzystać template i value.

 

b) Bardziej klasyczny OR dla dwóch warunków:

Pytanie:

Dnia 2.04.2015 o 14:01, gawcio90 napisał:

Czy ma ktoś pomysł jak natomiast zrealizować operator OR?

 

Chodzi o to, że nie mogę realizować tego linijka pod linijką ponieważ w przypadku kiedy Klient zakupi dwa towary to wyświetlą się dwie wiadomość:

 


[Transakcja::ListaTowarow|contains=`towar1`|then=`[Szablon::Blok::1]`|else=``]
[Transakcja::ListaTowarow|contains=`towar2`|then=`[Szablon::Blok::1]`|else=``]
 

 

Chodzi o to aby użyć klasycznego OR czyli jeżeli w przesyłce znajduje się towar1 lub towar2 lub oba to wyświetli się blok1.

 

I przykład Bartka jak to można zrealizować:

Cytat

Można spróbować takiego rozwiązania:

 


[Transakcja::ListaTowarow|contains=`towar1`|then=`[Szablon::Blok::1]`|else=`[Transakcja::ListaTowarow|contains=`towar2`|then=`[Szablon::Blok::1]`|else=``]`]
 

 

 

6.6 Obejście modyfikatora AND.

Podane przez Bartka tutaj: https://forum.sello.pl/index.php?topic=7850.msg50005#msg50005

 

 

6.7 Wykorzystanie modyfikatorów do szablonu uwag na dokumencie w Subiekcie

Uwagi na dokumentach w SGT mają limit znaków, teraz można dzięki modyfikatorom przyciąć niektóre informacje tak, żeby wszystko co chcemy zmieścić w uwagach na dokumencie w SGT było zawarte chociaż w części. Na przykład w uwagach nie potrzebujemy umieszczać długich:

-nazwisk klientów czy nazw firm

-nicków klientów

-adresów – ulic i dwuczłonowych miejscowości

W parametrach/zewnętrzny system sprzedaży/dokumenty – szablon uwag na dokumencie

Wybierzcie które tagi Was interesują i użyjcie modyfikatora truncate żeby je przyciąć, np. w tej postaci:

[Klient::ImieNazwisko|truncate=`15`]
 

 

 

6.8 Tekst ostatnia sztuka w aukcji

W szablonie aukcji wstawiamy warunek

[Towar::Dostepne|is=`1`|then=`Ostatnia sztuka, super cena`|else=``]
 

Czyli jeśli posiadamy jakiegoś towaru ostatnią sztukę to wstawi nam się tekst, że jest to „Ostatnia sztuka, super cena” i już nie musimy tego pilnować ręcznie.

Można go jeszcze pokolorować, powiększyć, itp. :)

 

 

6.9 Jak wykorzystać template i value do generowania linków do zdjęć w zależności od zmiennej liczby zdjęć

Podane przez Bartka tutaj: https://forum.sello.pl/index.php?topic=3461.msg51254#msg51254

 

 

6.10 Wykorzystanie modyfikatora template do zmiany ustawień zdjęć w aukcjach - podane przez Bartka

Cytat
Zamiast tradycyjnego <img> można nadpisać wartość tego co domyślnie generuje tag [Towar::Zdjecie::x].

Trzeba tylko przyjąć jakieś rozwiązanie, czy w Sello są zdjęcia miniaturki wgrane na serwer automatycznie przez Sello, czy np skorzystać z pól własnych.

 

Pola własne dają tą możliwość, że można w nich umieścić np nazwy zdjęć. Wtedy można np zapisać tag ze zdjęciem w taki sposób:


[Towar::PW::zdjecie1|template=`[url=www.server.pl/{value}.jpg]</img src="www.server.pl/{value}_thumb.jpg" />[/url]`]
 

 

Jeśli w polu własnym zdjecie1 zostanie wpisane np dlugopis_czerwony to wygenerowany zostanie taki tag html:


[url=www.server.pl/dlugopis_czerowny.jpg]</img src="www.server.pl/dlugopis_czerowny_thumb.jpg" />[/url]
 

 

Jeśli używane jest wysyłanie zdjęć przez Sello i nie ma osobnych plików z miniaturkami, można wymusić zmniejszenie oryginalnych dużych plików, np tak:


[Towar::Zdjecie::1|template=`[url={value}]</img width="100" src="{value}" />[/url]`]
 

 

Poprzez dodanie atrybutu Width, który zapewnia proporcjonalne skalowanie. Można też posłużyć się stylami max-width i max-height.

Edytowane przez Bartosz Rosa
Poprawiony kod szablon->Szablon
Link to postu
  • 2 tygodnie później...

Powrót do spisu działów

 

6.11 Porównywanie wyrażeń wieloczłonowych i ich zamiana na wyrażenia jednoczłonowe - WAŻNE!

Jeśli chcemy porównać wyrażenie wieloczłonowe, np. "List polecony ekonomiczny" używając modyfikatorów warunkowych to mogą nam wyjść błędy. Na przykład taki warunek:

[Paczka::Dostawa|is=`List polecony ekonomiczny`|then=...

nie wygeneruje się lub wygeneruje się z błędem!

 

Spowodowane jest to wyrażeniem wieloczłonowym jakim jest tekst "List polecony ekonomiczny". Żeby taki warunek wygenerował się prawidłowo należy takie wyrażenie wieloczłonowe zamienić na wyrażenie jednoczłonowe. Spośród wszystkich przetestowanych przeze mnie metod najlepsza jest metoda wymyślona przez gawcia stąd:

https://forum.sello.pl/index.php?topic=7838.msg49938#msg49938

 

Polega ona na wykorzystaniu modyfikatora strip do zamiany w wyrażeniach wieloczłonowych spacji na dowolny inny znak, tak że każde wyrażenie wieloczłonowe zamienia się w wyrażenie jednoczłonowe. Ja proponuję zamianę na znak podkreślnika _

 

Czyli żeby powyższy przykład wygenerował się prawidłowo to należy przed warunkiem zastosować strip i wyrażenie wieloczłonowe "List polecony ekonomiczny" porównywać już do zamienionego wyrażenia jednoczłonowego, czyli "List_polecony_ekonomiczny":

[Paczka::Dostawa|strip=`_`|is=`List_polecony_ekonomiczny`|then=...

Czyli powyższe czytamy w ten sposób:

-najpierw zamień w tagu Paczka::Dostawa wszystkie spacje na podkreślniki _

-czyli dla "List polecony ekonomiczny" otrzymamy "List_polecony_ekonomiczny"

-a następnie sprawdź czy tag Paczka::Dostawa jest równy wyrażeniu List_polecony_ekonomiczny

 

Obecnie jest to najlepsze działające obejście wyrażeń wieloczłonowych w modyfikatorach warunkowych.

 

 

6.12 Jak usunąć spacje z wartości tagów.

Przykład 1 - https://forum.sello.pl/index.php?topic=8158.0

Przykład 2 - https://forum.sello.pl/index.php?topic=8015.0

 

 

6.13 Jak znormalizować numer nadania do jednego ciągu cyfr.

[Paczka::NumerNadania|strip=`-`|replace=`-==`]

strip zamienia wszystkie spacje w numerze nadania na myślniki,

a następnie replace zamienia myślniki na pustkę i generuje się numer nadania jako jedne ciąg cyfr bez spacji.

 

 

Link to postu

Powrót do spisu działów

 

6.14 Jedna automatyczna tabelka z parametrami towaru dla wszystkich grup towarowych.

a) w skrócie:

Na podstawie przykładu podanego przez Bartka tutaj: https://forum.sello.pl/index.php?topic=7838.msg50610#msg50610 wystarczy dla każdego parametru zastosować taki zapis w tabeli:

<TABLE>
[Towar::PW::Aromat|template=`<tr><td>Aromat:</td><td>{value}</td></tr>`]
</TABLE>

Czyli jeśli towar posiada pole własne o nazwie Aromat i to pole nie jest puste (czyli posiada wpisaną jakąkolwiek wartość, np. morski) to wygeneruje się wiersz w tabeli o nazwie Aromat: z wartością pola własnego Aromat, czyli np.

 

Aromat: morski

 

A jeśli w towarze nie ma pola własnego o nazwie Aromat lub jest ono puste to wiersz w tabeli się nie wygeneruje. Należy również pamiętać, że pole własne o nazwie Aromat, oczywiście musi być dodane do słownika pól własnych towarów.

 

 

b) dokładne wytłumaczenie:

Załóżmy, że chcemy uzyskać w szablonie aukcji automatyczną tabelkę w tej postaci:

Typ:               czapka traperka
Materiał:          bawełna
Rozmiar:           42 
Producent:         Audi
Model:             A5
Rok produkcji:     2015

Formę graficzną tabeli tutaj pomijam - opisane w każdym poradniku do HTML ;)

 

Oczywiście powyższa tabelka zawiera parametry zarówno dla czapki jak i samochodu. Moglibyśmy się bawić i dodawać do każdej z grup towarowych osobną tabelkę ale po co jak można zrobić jedną do wszystkich towarów. Limitem jest tutaj jedynie maksymalna liczba znaków w jednym polu własnym, czyli 4000 znaków, ale i to można obejść dzieląc tabelkę na kilka pól własnych. Jak więc zrobić w Sello tylko jedną tabelkę dla każdego rodzaju sprzedawanego przez nas towaru, np. zarówno czapek jak i samochodów?

 

Można to zrobić w ten sposób:

1. Dodajemy do słownika pól własnych w Sello następujące pola:

-tabelka

oraz pola opisujące parametry każdej ze sprzedawanych przez nas grup towarów, czyli wszystkie wymienione powyżej:

-Typ

-Materiał

-Rozmiar

-Producent

-Model

-Rok produkcji

 

2. Do każdego towaru dodajemy pole własne o nazwie tabelka i wprowadzamy w nim następujący kod HTML:

<TABLE>
[Towar::PW::Typ|template=`<tr><td>Typ:</td><td>{value}</td></tr>`]
[Towar::PW::Materiał|template=`<tr><td>Materiał:</td><td>{value}</td></tr>`]
[Towar::PW::Rozmiar|template=`<tr><td>Rozmiar:</td><td>{value}</td></tr>`]
[Towar::PW::Producent|template=`<tr><td>Producent:</td><td>{value}</td></tr>`]
[Towar::PW::Model|template=`<tr><td>Model:</td><td>{value}</td></tr>`]
[Towar::PW::Rok produkcji|template=`<tr><td>Rok produkcji:</td><td>{value}</td></tr>`]
</TABLE>

 

3. Dodatkowo do czapek dodajemy pola własne z parametrami czapek, czyli:

-Typ

-Materiał

-Rozmiar

A do samochodów z parametrami samochodów, czyli:

-Producent

-Model

-Rok produkcji

Następnie do tych pól własnych wpisujemy ich wartości, np. wg tych co podałem wyżej: czapka traperka, bawełna, itd.

 

4. W szablonie aukcji wstawiamy tylko tag pola własnego tabelka, czyli

[Towar::PW::tabelka]

Można też kod tabeli dodać na stałe do szablonu ale ja preferuję odróżnianie szablonu od wszystkiego co opisuje przedmiot i dlatego wszystko odpowiedzialne za opis przedmiotu proponuję trzymać w polach własnych towarów.

 

5. Wystawiamy czapkę i samochód z tego szablonu aukcji i na podstawie tego co napisałem w podpunkcie a) tabelka wygeneruje tylko wiersze, które są w danym towarze i tylko wtedy gdy mają wpisaną jakąś wartość, czyli dla czapki wygeneruje się:

 

Typ:               czapka traperka
Materiał:          bawełna
Rozmiar:           42 

 

A dla samochodu wygeneruje się:

 

Producent:         Audi
Model:             A5
Rok produkcji:     2015

 

I w ten sposób mamy jedną tabelkę do wszystkich towarów, a wartości będą się generować tylko na podstawie tych pól, które w danym towarze dodamy i wypełnimy wartościami - to się nazywa automatyzacja ;)

 

 

c) Powyższy zapis jest również przydatny dla tagów statycznych.

Jeśli w szablonach aukcji stosujesz również tagi statyczne, np. [Towar::Producent], [Towar::Grupa], itp. to dla nich również warto zastosować zapis podany w podpunkcie a. Dzięki temu jeśli w jakimś towarze zapomnisz wpisać wartości jakiegoś tagu to tag się nie wygeneruje i unikniesz sytuacji z pustymi wartościami, czyli pustych parametrów towarowych w opisach aukcji, np.

 

Producent:  
Grupa: 

 

Wg mnie lepiej żeby nie było ich podanych niż jeśli mają być puste.

 

 

Link to postu
  • 3 tygodnie później...

Powrót do spisu działów

 

6.15 Jak ukryć wartość pola własnego lub innego pola gdy jest puste lub nie ma go w towarze.

Na przykładzie pomocy wystarczy zastosować taki zapis taga:

[Towar::PW::Aromat|template=`{value}`]

Czyli jeśli w towarze nie ma pola własnego o nazwie Aromat lub jest ono puste to tag wstawi pustkę. Należy również pamiętać, że pole własne o nazwie Aromat, oczywiście musi być dodane do słownika pól własnych towarów.

 

Działa to dla wszystkich tagów, np. w szablonie wiadomości mailowej:

[Paczka::NumerNadania|template=`{value}`]

Tag wstawi pustkę jeśli pole NumerNadania w paczce będzie puste.

Link to postu
  • 1 miesiąc temu...
  • 9 miesięcy temu...

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...