Uwaga! Od sierpnia 2017 forum jest w trybie tylko do odczytu.

Dlaczego? Dlatego, że społeczność TYPO3 przeniosła się na slack'a i stackoverflow:
  • Przeczytaj artykuł wprowadzający do slacka, w którym dowiesz gdzie i jak się zarejestrować.
  • Jeżeli masz pytania odnośnie Polskiej Społeczności TYPO3 zapraszamy na kanał slack'a #community-pl. Rozmawiamy tam w języku polskim.
  • Pytania dotyczące samego TYPO3 zadawaj po angielsku na stackoverflow oznaczając je tagiem "typo3". Następnie posługując się linkiem do tego pytania postaraj się zachęcić ludzi z kanału slack'a #typo3-cms lub bardziej pasujących kanałów tematycznych, żeby na nie odpowiedzieli.
  • Możesz też oczywiście zadawać pytania na slacku bez zakładania wątków na stackoverflow, ale wówczas wiedza ta nie jest indeksowana przez googla i część osób nie będzie chciała Ci z tego powodu pomagać.
  • Dla części osób dzielących się wiedzą ważne jest też budowanie reputacji na stackoverflow. Jest to kolejny powód dla którego powinieneś zadawać pytania na stackoverflow by zwiększyć swoje szanse na znalezienie odpowiedzi. Pamiętaj, żeby oceniać odpowiedzi!
Tematy bez nowych odpowiedzi

Pokaz slajdow (slideshow) lub zwyczajnie imageCycle.js sterowany przez TS


Autor Wiadomość
Napisane: 15.11.2012 [14:52]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Witam,

Szukam rozszerzenia, ktore pozwoli mi na ustalenie 4 glownych zdjec widocznych na kazdej podstronie, ale tak abym na kazdej podstronie z osobna mogl dodac jedno zdjecie jako pierwsze, bez koniecznosci kopiowania pluginu pod kazda z podstron, tak abym mogl w razie czego wymienic jedno ze zdjec glownych i zeby na kazdej podstronie to zdjecie sie podmienilo.

Wiec teoretyzujac wystarczylo by przywolywac zdjecia do pokazow slajdow poprzez TS,
gdzie umieszcze wszstkie PID UID do 4 glownych zdjec, a nastepnie za pomoca PIDinRootline bede mogl dodac kolejne zdjecie pod odpowiednia podstrona.

Czy ktos takiego cos kiedys robil ?

Czy ktos wie czy moze ktorys z dodatkow daje taka mozliwosc?

a moze wystarczylo by uzyc jedynie imageCycle.js w prostym skrypcie go przywolac
do danego diva ktory wywola odpowiednie zdjecia ?

Kto pomoze mi machnac szybko taki TS ? icon_smile.gif

DZIEKUJEE
Napisane: 15.11.2012 [15:00]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Wg mnie jak nie ma takiego gotowego rozszerzenia ktory by latwo to mogl ogarnac, moge zrobic to na takiej prostej zasadzie jak w przypadku tego prostego kodu HTML:

HTML
<div id="pics">
 
<a href="#"><img src="" title="Pic1" alt="Pic1" src="http://www.strona.com/pic1.jpg" width="960" height="400" /></a>
 
<a href="#"><img src="" title="Pic2" alt="Pic2" src="http://www.strona.com/pic2.jpg" width="960" height="400" /></a>
 
<a href="#"><img src="" title="Pic3" alt="Pic3" src="http://www.strona.com/pic3.jpg" width="960" height="400" /></a>
 
<a href="#"><img src="" title="Pic4" alt="Pic5" src="http://www.strona.com/pic5.jpg" width="960" height="400" /></a>
 
</div>
 
<script type="text/javascript" src="imageCycle.js"></script>
<script type="text/javascript">
$('#pics').cycle({ 
    fx:     'fade', 
    speed:   1300, 
    timeout: 4000, 
    pause:   1 
});
</script>



Tyle ze kazde ze zdjec bylo by zapisane jako content i przywolywane poprzez

TYPOSCRIPT
table = tt_content
  select.uidInList = xx
  select.pidInList = xx


Teraz potrzeba troche magii aby pic5 umieszczone pod danym PIDinRootline wgralo sie automatycznie i wyswietlalo pod danym PIDinRootline oraz podstronach w danym PID.

Na tym opisie moja wiedza do pisania wlasnych kodow do czegokolwiek sie konczy!

Dlatego licze na Wasze wsparcie w tej kwestii! Chociazby jakos to zaczac a ja sobie reszte doczytam!

Dziekuje

Napisane: 16.11.2012 [15:17]
Imp
zarejestrowany: 13.04.2011
Posty: 170
Możesz do tego zadania wybrać jakikolwiek slider.

Tworzysz szablon html dla swojego pluginu slidera, zaszywasz w nim na sztywno swoje 4 obrazki, które mają się pojawiać zawsze. W strukturze szablonu html musisz uwzględnić np jedno dodatkowe pole, na swój niestandardowy obrazek, w dowolnym miejscu. Mapujesz szablon za pomocą TemplaVoila, wg potrzeb.

Wstawiasz na stronę FCE i wybierasz sobie obrazek. Masz zawsze swój niestandardowy + te które są na sztywno w szablonie ustawione.

Co o tym sądzisz?
Napisane: 16.11.2012 [15:41]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Imp,

Rozwiazanie jest rzeczywiscie dobre, ale problematyczne bedzie podmienianie zdjec twardo zapisanych w template. Jezeli nie beda one przywolywane z jakiegos rekordu ktory bym umieszczal w folderze np. Dynamic content / Slideshow, ale musial bym podmieniac pliki nadpisujac je w tych samych nazwach poprzez filelist.

Dalo by sie, ale jedna rzecz jest istotna - przy zmianie zdjecia jest rowniez koniecznosc zmiany linku do odpowiedniego miejsca na stronie.

Wiec w tym przypadku konieczna by byla edycja szablonu...

Wiec bezpieczniej by bylo wgrywac do FCE kod HTML poprzez TS, gdzie ten kod bylby edytowalny... ale mimo iz mozna by bylo zmieniac linki, to dalej jest to grzebanie w kodzie html co dla klienta nie jest zbytnio jasne.

Wiec chcialbym mogl obecny kod HTML:

HTML
<div id="pics">
 
<a href="/kataloger.html">
    <img src="fileadmin/templates/img/slider_1.jpg" width="960" height="377" />
</a>
 
<a href="/kataloger.html">
    <img src="fileadmin/templates/img/slider_1.jpg" width="960" height="377" />
</a>
 
<a href="/kataloger.html">
    <img src="fileadmin/templates/img/slider_1.jpg" width="960" height="377" />
</a>
 
</div>
 
<script type="text/javascript" src="http://www.newwaveprofile.com/fileadmin/templates/js/imageCycle.js"></script>
<script type="text/javascript">
$(function() {
$('#pics').cycle({ 
       fx:     'scrollHorz',
    speed:   1300, 
    timeout: 4000, 
    pause:   1,
    cleartypeNoBg: true,
        pager:  '#nav',
        pagerAnchorBuilder: function paginate(idx, el) {
	return '<a class="service' + idx + '" href="#" >&bull;</a>';
}
    });
});
</script>
<div id="nav"></div>

Przeobic tak, aby wgrywac zdjecia pobrane poprzez content podajac PID i UID.


Jak widac - skrypt odpala pokaz slajdow do zdjec umieszczonych w div #pics,
wystarczylo by zeby mozna bylo stworzyc rekord ze zdjeciem ktory bedzie wpisany w danym divie.

ale chodzi mi o to zeby nie robic tego na sasadzie kopiowania referencyjnego obiektu na kolejne podstrony...

Ehh ciezko mi to wytluamczyc ale mam nadzieje, ze rozumiesz o co mi chodzi...

A teraz mi sie przysnila kolejna rzecz...

zacznijmy w ten sposob:

strona:
http://newwaveprofile.com.two.nwgextra.com/

1 z 55 wspolpracujacych firm:
http://newwaveprofile.com.two.nwgextra.com/wallex/

po wejsciu w ten adres jestes automatycznie zalogowanym i widzisz submenu danego klienta.
Na poczatku myslalem ze tylko na danej stronie klienta (gdzie obecnie nie jest wyswietlany pokaz slajdow) mialby sie znajdowac taki ja kna stronie glownej ale z jednym zdjeciem dodanym przez klienta.

Teraz pomyslalem, ze powinienem isc krok do przodu i bedac zalogowanym pod dana firme klienta, powinienem rowniez na stronie glownej zobaczyc te dodatkowe zdjecie w pokazie slajdow... oczywiscie to nie jest problem bo przez TS moglbym napisac lib.slideshow pozycje wkladajac tam jego podaz slajdow i to wsdzystko bylo by zajmkniete w warunku danego uzytkownika [usergroup = xx]

hmm
Napisane: 17.11.2012 [02:07]
Imp
zarejestrowany: 13.04.2011
Posty: 170
To inaczej. Zmapuj dwa znaczniki.

W pierwszy, miejsce gdzie ma się wyświetlać slider, wrzucasz FCE ze swoimi standardowymi zdjęciami i linkami. To jest w stanie klient w TV sobie zmieniać sam. Kopiujesz zawartość tego pola po całym drzewie strony, gdzie chcesz.

W drugi znacznik wrzucasz FCE z niestandardowym obrazem i linkiem, możesz też umożliwić dodanie dowolnej ilości dodatkowych slajdów. To też klient robi sam i nic więcej go nie interesuje. Ten znacznik nr 2 domyślnie ukrywasz poprzez dodanie w css display:none;

I teraz trick, przed odpaleniem slidera, który startuje po załadowaniu całego DOM, wykonujesz funkcję javascript, której zadaniem jest dołączenie kodu ze znacznika 2 na początek lub koniec kodu ze znacznika 1 a następnie odpalenie slidera.

Pozdrawiam

[Ten temat był edytowany 1 razy. Ostatnio 17.11.2012 o 02:11.]
Napisane: 19.11.2012 [14:20]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Nic nie dziala tak jak bym chcial.


Czy naprawde nie da sie tego napisac w TypoScript?

Ja jestem przekonany ze sie da, tylko nie mam pojecia gdzie szukac podobnego rozwiazania.


TS wczytuje na stale wpisane rekordy zapisane gdzies w roznych sysfolderach.

Wystarczylo by abym skopiowal 55 razy taki TS pod kazda z podstron, zmieniajac tylko PID i UID tego /tych dodatkowych sjajdow.

Glowne slajdy byly by podlinkowane na stale, wiec dodajac nowe zdjecie robilo by sie to poprzez edycje obecnego rekordu tak aby UID sie nie zmienial.

Ktos ma pomysl jak to ugrysc?
Napisane: 18.01.2013 [09:13]
mwolanski
Twórca tematu
zarejestrowany: 23.11.2011
Posty: 88
Poradzilem sobie juz z problemem w nastepujacy prosty sposob:

1 Root page
2
3
4 [user page]
5 [user page]
...

lib.slaidshow dopisalem do glownego templatu dla wszystkich stron, wgrywam go za pomoca TS, dodatkowo utworzylem FCE (Flexible Content Element) jako element zbiorczy dla zawartych w nim slajdow.

Utworzylem ukryta w menu podstrone zawierajaca slajdy do slideshow. W niej 5 elementow - jedne jako html, inne jako image lub tez poprostu text.

Na stronie glownej (1) umieszczony jest w TS skrypt uruchamiajacy pokaz:

TYPOSCRIPT
page.headerData.2510 = TEXT
page.headerData.2510.value (
<script type="text/javascript" src="fileadmin/templates/js/imageCycle.js"></script>
<script type="text/javascript"> 
$(function() {
$('#pics').cycle({ 
     fx:     'fade',
        speed:   1200, 
    timeout: 9000, 
    pause:   1,
    cleartypeNoBg: true,
        pager:  '#nav',
        pagerAnchorBuilder: function paginate(idx, el) {
  return '<a class="service' + idx + '" href="#" >&bull;</a>';}
    });
});
</script>
)


Oraz TS ktory domyslnie uruchomi pokaz slajdow na wszystkich stronach. Wczytuje FCE ktore zawiera poszczegolne rekordy slajdow.

TYPOSCRIPT
lib.slideshow = CONTENT
lib.slideshow {
  table = tt_content
  select.uidInList = 10
  select.pidInList = 2
}


Teraz tworze analigoczna sytuacje dla kazdego z uzytkownikow 4,5 itd. Z tym, ze w zbiorczym elemencie FCE tworze reference objekt np. 3 slajdow ktore chce aby byly sterowane globalnie. Pozostale slajdy ktore otworze tam pokaza sie jako dodatkowe.

Nastepnie analogicznie ustawiam TS najpierw zmiana wyswietlania sie slajdu na danej podstronie tylko:
TYPOSCRIPT
[PIDinRootline = 4]
lib.slideshow  = CONTENT
lib.slideshow {
  table = tt_content
  select.uidInList = 20
  select.pidInList = 4
}
[global]

oraz dodatkowy TS, ktory zmienia globalnie pokaz slajdow gdy uzytkownik sie zaloguje.
TYPOSCRIPT
[usergroup = 19]
lib.slideshow  = CONTENT
lib.slideshow {
  table = tt_content
  select.uidInList = 20
  select.pidInList = 4
}
[global]


Dzieki temu rozwiazaniu, ja jako admin strony, wiem, ze mam do dyspozycji 5 slajdow lub wiecej, z czego 3 sa na stale zlinkowane z kazdym uzytkownikiem strony. Jezeli je ukryje to oczywiscie nie bedzie zadnych globalnych slajdow u uzytkownika.
Uzytkownik natomiast, moze dodawac dowolna ilosc wlasnych slajdow na swojej podstronie, ktore uwzgledniaja rowniez te globalne slajdy.

Wiec wszystko dziala jak trzeba.

Pozostaje jeden problem.


Uzytkownik po zalogowaniu sie do BE, chcac edytowac swoje slajdy widzi obiekty zlinkowane z glowna strona i moze je odlinkowac (unlink) sam! co jest nie porzadanym efektem poniewaz uzytkownik nie powinien miec wplytu na globalne slajdy.

Czy wie ktos w jaki sposob mozna np. calkowicie wylaczyc wyswietlanie sie objektow zlinkowanych (reference object) w BE dla uzytkownika?
Albo chociaz moze da sie wylaczyc opcje Unlink record?

Dziekuje za pomoc