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

select na podstawie selecta do innej tabeli


Autor Wiadomość
Napisane: 24.08.2013 [15:02]
rypta
Twórca tematu
zarejestrowany: 24.08.2013
Posty: 3
Witam,

zaczynam z Typo3 pomimo fajnego pierwszego wrażenia, właśnie zaczęły się schody,
konkretnie:

Chcę zrobić selecta w obiekcie CONTENT na podstawie wyniku selecta do innej tabeli, taki mam kod:

lib.ankieter = CONTENT
lib.ankieter {
table = tx_myquizpoll_result
select {
pidInList = 96
selectFields = fe_uid
where = fe_uid = ###useruid###
languageField = sys_language_uid
markers {
useruid.data = TSFE:fe_user|user|uid
}
}
renderObj = COA
renderObj {
10 = TEXT
10.field = uid
10.wrap = Uid do tablicy relation to: &nbsp; | <br/>

}
}

lib.uidek = CONTENT
lib.uidek {
table = tx_myquizpoll_relation
select {
pidInList = 96
selectFields=points,question_id,user_id
orderBy = user_id
where = user_id= # tutaj wartość z lib.ankieter, czyli to co w field uid
languageField = sys_language_uid
}
renderObj = COA
renderObj {

10 = TEXT
10.field = points
10.wrap = Punkty: <h4>|</h4>

20 = TEXT
20.field = question_id
20.wrap = Pytanie: <p>|</p>

30 = TEXT
30.data = debug:data
}
}

Chodzi mi o wiersz where = user_id= # tutaj wartość z lib.ankieter, czyli to co w field uid, co tu powinno być, by działało.

A może samo podejście jest błędne i nie powinienem tego robić w typoscripcie tylko w php, ewentualnie jakieś rozszeżenie do zapytań sql i pzretwarzania ich wyników?

Z góry dzięki za naprowadzenie,
Napisane: 25.08.2013 [21:05]
dpacholczyk
admin
zarejestrowany: 17.09.2008
Posty: 1544
ale ty ten efekt chcesz otrzymać na fe czy w be ?

Certified Level 2 TYPO3 Night Crew Member.

http://typo3blog.pl
Napisane: 25.08.2013 [21:31]
kss
zarejestrowany: 19.07.2007
Posty: 1341
Uzyj w pierwszym objekcie LOAD_REGISTER do zapamiętania wyniku. Uwaga. Ważne w tym momencie jest, żeby kod lib.ankieter był przed lib.uidek aby LOAD_REGISTER mógł zapamiętać zmienną.

TYPOSCRIPT
lib.ankieter = CONTENT
lib.ankieter {
table = tx_myquizpoll_result
select {
pidInList = 96
selectFields = fe_uid
where = fe_uid = ###useruid###
languageField = sys_language_uid
markers {
useruid.data = TSFE:fe_user|user|uid
}
}
renderObj = COA
renderObj {
10 = TEXT 
10.field = uid
10.wrap = Uid do tablicy relation to: &nbsp; | <br/>
 
20 = LOAD_REGISTER
20.uidek.cObject = TEXT
20.uidek.cObject.field = uid
 
 
}
}


Następnie

TYPOSCRIPT
lib.uidek = CONTENT
lib.uidek {
table = tx_myquizpoll_relation
select {
pidInList = 96
selectFields=points,question_id,user_id
orderBy = user_id
where.dataWrap = user_id={register:uidek}
languageField = sys_language_uid
}


=======================================
t33k
Napisane: 25.08.2013 [23:48]
kss
zarejestrowany: 19.07.2007
Posty: 1341
A ogólnie to lepiej to robić w php.

Typoscript słabo "krzyczy". Jeżeli zrobisz jakiś błąd, literówkę to możesz szukać 5 minut, 15 i godzinę. Dodatkowo jeżeli go dopiero poznajesz może to być droga przez mękę metodą prób i błędów.

Ja bym proponował USER i USER_INT i przerzucenie tego do php.
http://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/UserAndUserInt/Index.html

Tylko nie umieszczaj php w fileadmin/. Stwórz sobie jakieś rozszerzenie, które będzie takim bazowym extem do zmian TYPO3, których nie można dokonać w pageTS / templateTS.

Ja mam zawsze w każdej instancji TYPO3 swój ext "t3_local". Tam umieszczam np. klasy do których się odwołuję w USER i USER_INT.




=======================================
t33k
Napisane: 26.08.2013 [20:22]
rypta
Twórca tematu
zarejestrowany: 24.08.2013
Posty: 3
bardzo dziękuję za pomoc, wiedziałem że coś z LOAD_REGISTER, ale mimo poszukiwań nie doszedłem do rozwiązania.

to skłania do podjęcia wykonania się zadania popzrez skrypty php i tak właśnie teraz robię, poprzez rozszerzenie LumoNet PHP Include;

nie przyjmuje mi plików z rozszerzeniem php tylko inc, co trochę mnie męczy bo za każdą zmianą muszę znowu podpinać plik, ale faktycznie w php szybciej obrobię dane z bazy.

Chyba że ktoś ma jeszcze lepsze propozycje co do podpinania php do Typo3.

Napisane: 27.08.2013 [16:05]
dpacholczyk
admin
zarejestrowany: 17.09.2008
Posty: 1544
Opisz może od A do Z co ty chcesz osiągnąć. po co chcesz wgrywać pliki php ? od tego są pluginy

jest też obiekt PHP_SCRIPT (a może już nie ma ? icon_razz.gif) który pozwoliłby na wpięcie

Certified Level 2 TYPO3 Night Crew Member.

http://typo3blog.pl
Napisane: 29.08.2013 [20:16]
rypta
Twórca tematu
zarejestrowany: 24.08.2013
Posty: 3
potrzebuję wygenerować kilka raportów na podstawie danych zebranych w ankietach.

Do zbierania danych użyłem rozszerzenia My qiuz poll , którym tworzę odpowiednie formularze i dane są zapisywane do bazy,

jednak wyniki muszę już wyciągać i obrabiać, modyfikować, robić różne zestawienia i to wymaga php + sql (z typoscript ciągle napotykam na ograniczenia).

tak więc ręcznie tworzę zapytania do bazy i obrabiam i wypluwam w podpiętych skrypatach php,

tak to mniej więcej wygląda.
Napisane: 03.09.2013 [09:51]
dpacholczyk
admin
zarejestrowany: 17.09.2008
Posty: 1544
opisujesz coś co powinno robić rozszerzenie a nie wpięty skrypt php

Certified Level 2 TYPO3 Night Crew Member.

http://typo3blog.pl