Skocz do zawartości

Dynamiczna lista wypunktowana z pól własnych

Polecane posty

Jak zrobić dynamiczną listę w nowym opisie Allegro generowaną z pól własnych towaru?

 

Na początek należy utworzyć pola własne - tyle ile maksymalnie może być różnych elementów na liście wypunktowanej. Można oczywiście posłużyć się również już zdefiniowanymi polami, lub też polami z Subiekta. Ja posłużę się dla przykładu nowymi 4 polami (można dodać dowolną ilość pól).

 

W słowniku pól własnych tworzę pola:

cecha_1

cecha_2

cecha_3

cecha_4

itd..

 

W tych polach będą umieszczane wartości, które mają się pojawić na liście wypunktowanej.

 

Następnie dodaję nowe pole globalne o nazwie cechy_towaru z poniższą zawartością:

 

<ul>
[Towar::PW::cecha_1 | template=`<li>{value}</li>`]
[Towar::PW::cecha_2 | template=`<li>{value}</li>`]
[Towar::PW::cecha_3 | template=`<li>{value}</li>`]
[Towar::PW::cecha_4 | template=`<li>{value}</li>`]
</ul>
 

W tym miejscu można użyć w podobny sposób innych pól towaru własnych lub zewnętrznych. Modyfikator template zapewni dodatkowo, żeby nie generowały się puste wypunktowane elementy. Jeśli w towarze nie będzie danego tagu to nie zostanie wygenerowany element listy li.

 

W towarze, można teraz przypisywać cechy do pól własnych cecha_1..cecha_4

 

Natomiast w szablonie opisu aukcji, należy wstawić tag:

 

[Podmiot::PW::cechy_towaru]

 

W ten sposób dodając wybrane pola własne do towaru (co można robić zbiorczo) możemy za pomocą jednego tagu dodawać dynamicznie generowaną listę wypunktowaną nie wnikając w HTML, który jest pod spodem.

 

 

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

Dodawanie takiej ilości pól własnych nie jest zbytnio optymalne. Lepszym sposobem było by przeznaczenie na cechy jednego pola własnego i wypunktowanie każdej linijki tekstu.

Testowałem takie rozwiązanie. Utworzyłem pole własne dla towarów o nazwie "Cechy" zaznaczając przy tym opcję "Zamieniaj znaki nowej linii na znacznik <br />" i uzupełniłem to pole w pewnym towarze kilkoma cechami oddzielając je znakami nowej linii (ENTER), przykład:

Cytat

Picture Quality Index: 3400
Rozdzielczość UHD (4K)
Q Picture: Technologia Quantum Dot

W szablonie opisu dodałem taką regułkę:

[Towar::PW::Cechy|template=`<li>{value}</li>`|replace=`<br />==</li><li>`]

ale niestety nie działa. W efekcie dostaje coś takiego:

Cytat

<li>Picture Quality Index: 3400Rozdzielczość UHD (4K)Q Picture: Technologia Quantum Dot</li>

zamiast coś takiego:

Cytat

 

<li>Picture Quality Index: 3400

</li><li>Rozdzielczość UHD (4K)

</li><li>Q Picture: Technologia Quantum Dot</li>

 

Testowałem to rozwiązanie psiłkując się dodatkowo polem własnym globalnym ale też nie dało to pożądanego efektu (coś namieszane w tym systemie jest parsowanie kodu HTML)

Może macie inny pomysł jak to ogarnąć?

Link to postu

Ja mam tak (zachowuję swoją "złożoną" nazwę "NO_ul_w_zestawie"):

W SZABLONIE OPISU w bloku tekstowym:

[Podmiot::PW::NO_ul_w_zestawie]

POLE GLOBALNE podmiotu:

<ul>
[Towar::PW::NO_ul_w_zestawie_0 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_1 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_2 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_3 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_4 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_5 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_6 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_7 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_8 | template=`<li>{value}</li>`]
[Towar::PW::NO_ul_w_zestawie_9 | template=`<li>{value}</li>`]
</ul>

I POLA WŁASNE dodane do towarów, w które wpisuję, to co ma być na liście w aukcji.

PWT.PNG.8b47d6dec62e818e33a524d83b1a6e9b.PNG

 

W efekcie tworzy się ładna wypunktowana lista.

Link to postu
Dnia 24.03.2018 o 11:58, maniootek napisał:

Dodawanie takiej ilości pól własnych nie jest zbytnio optymalne. Lepszym sposobem było by przeznaczenie na cechy jednego pola własnego i wypunktowanie każdej linijki tekstu

Ale wtedy nie skorzystasz ze zmian zbiorczych.

Dnia 24.03.2018 o 11:58, maniootek napisał:

Może macie inny pomysł jak to ogarnąć?

Spróbuj skorzystać z modyfikatorów escape_xml i unescape_xml. Jeśli zapisujesz kod HTML (<li>) w edytorze graficznym to on jest zamieniany na &ltl;li&gt; i na takich wartościach trzeba operować w tagach a nie na nawiasach ostrych.

 

Link to postu
6 godzin temu, Bartosz Rosa napisał:

Ale wtedy nie skorzystasz ze zmian zbiorczych.

Przykładowo w jakim przypadku?

 

6 godzin temu, Bartosz Rosa napisał:

Spróbuj skorzystać z modyfikatorów escape_xml i unescape_xml. Jeśli zapisujesz kod HTML (<li>) w edytorze graficznym to on jest zamieniany na &ltl;li&gt; i na takich wartościach trzeba operować w tagach a nie na nawiasach ostrych.

To już coś.

Spróbowałem takiego kodu w szablonie opisu

[Towar::PW::Cechy|escape_xml|template=`<li>{value}</li>`|replace=`<br />==</li><li>`|unescape_xml]

finalnie dostał takie efekt:

Przechwytywanie.PNG.a1c6754e93369c767133484a106eaccb.PNG

wygląda na to, że unescape_xml nie działa dla kodu html wpisanego w template

Link to postu
1 godzinę temu, maniootek napisał:

Przykładowo w jakim przypadku?

W przypadku gdybyś chciał dodać kolejną cechę lub jakąś usunąć z towarów.

Modyfikator template jest traktowany inaczej niż pozostałe, jest on wykonywany zawsze na końcu, zatem to co wpiszesz w jego wartość nie będzie przetwarzane przez inne modyfikatory.

Link to postu

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ę...