Zum Inhalt springen

SelectListe mit DB Content füllen

Erstellt am 4. August 2003 · 4 Antworten · letzte Antwort am 8. April 2004

Tags: TCA, Frage

mrsunshine ·

hallo,

ich möchte für eine frontend plugin extension eine SelectListe mit db content füllen.
die select box soll folgendes enthalten, liste mit allen seiten die unter einem bestimmten wurzelverzeichnis liegen. angezeigt wird der title, value ist die uid.

sql technisch kein problem:

$query = "SELECT title, uid FROM `pages` WHERE pid = 13 ORDER BY title";

mein problem is das ich aus der datei class.tx_image_tx_image_details_country.php wo der sql befehl drin steht keine gescheite über gabe an
$params["items"][]=Array($pObj->sL(?),?); hinbekomme.

class.tx_image_tx_image_details_country.php:
<?
class tx_image_tx_image_details_country {
function main(&$params,&$pObj) {
$query = "SELECT title FROM `pages` WHERE pid = 13 ORDER BY title";
$res = mysql(TYPO3_db,$query);
$out= array();
while($row = mysql_fetch_assoc($res)){
$out[]=$row;
}
$params["items"][]=Array($pObj->sL(???),???);
}
}

if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/image/class.tx_image_tx_image_details_country.php"]) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/image/class.tx_image_tx_image_details_country.php"]);
}

?>

Wie muss die klasse richtig aussehen?
was mus ich an $pObj->sL() übergeben?
Was macht die funktion?
wo gibt es eine referenz zu $pObj? in TREF steht nix!

Bin für alle tipps, erklärungen, ...

SEHR DANKBAR 🙁

Christoph123 ·

Das hört sich fast so an also ob es in Typoscript nicht möglich wäre...

dabei bin ich verzweifelt am Suchen nach einer Möglichkeit sqlAbfragen auch mit typo3 zu machen....

mein jetztiger Ansatz ist dabei folgender...

# Default PAGE object:
page = PAGE
page.typeNum = 0
page.10 = TEXT
page.10.value = HELLO WORLD!

page.40 = CONTENT
page.40{
table = tt_content
select {
pidInList = 51
orderBy = sorting
where = colPos=0
#limit = 2, 2
max = 1
}
}
soweit bekomme ich aber nur das letzte Element...
wo gibt es denn eine Dokumentation ob ich limit einsetzen kann....

zudem quält mich das Problem...

in Typo3-Form zu schreiben:

PHP:
SELECT pid FROM pages WHERE uid = 49
// also alle direkten unterseiten der Seite 49

um dann mit den result1 , 2, 3 ....
die Abfrage nach den CONTENT zu machen und auszugeben
also
SELECT * FROM tt_content WHERE pid = result1
SELECT * FROM tt_content WHERE pid = result2
SELECT * FROM tt_content WHERE pid = result3
SELECT * FROM tt_content WHERE pid = result4

Oder gibt es eine Andere Möglichkeit von den ersten 4 Unterseiten... welche aber evtl auch hinzugefügt werden können..
ein Contentelement zu holen was z.B. immer links steht.?
um eine Antwort wäre ich dankbar

Christoph123 ·
Tetramatrix schrieb

http://typo3.org/1422+M584d3b45de0.0.html?&tx_maillisttofaq_pi1[answered_only]=0&tx_maillisttofaq_pi1[sword]=DB%3Att_content

vielleicht hilf Dir das weiter, ich habs aber auch noch nie probiert.

T.

Danke für den Link momentan habe ich einen eigenen Lösungsansatz und bekomme nur nicht eine wahrscheinlich ganz kleine Kleinigkeit nicht hin.

ich erhalte in meinem Script immer einen wert der in eine field feld eingetragen werden muss.
die Zahlen zeigt der Browser auch schön an nur brauch ich sie um die nächste Abfrage zu machen...

für alle die es interessiert und die mir vielleicht doch noch einen tip geben können mein Script:

# Default PAGE object:
page = PAGE
page.typeNum = 0
page.10 = TEXT
page.10.value = HELLO WORLD!
# erste Seite
# gibt die uid Unterseiten von 0 - 4 (begin bis begin+max) von der Seite mit der uid 50 aus

page.20 = CONTENT
page.20{
table = pages
select {
pidInList = 50
orderBy = sorting
begin = 0
max = 4
}
wrap = <br> | <br>
renderObj = TEXT
renderObj.field = uid
renderObj.intval = 1
renderObj.wrap = <br> | <br>
}
##################(klappt)##############################

temp = CONTENT
temp {
table = pages
select {
pidInList = 50
orderBy = sorting
begin = 0
max = 1
}
wrap = <br> | <br>
renderObj = TEXT
renderObj.field = uid
renderObj.intval = 1
renderObj.wrap = <br> | <br>
}

##################################################
#########und zeigt sie an #############################
##################################################
page.49 = TEXT
page.49.value = <table widht = 800 height = 300 border=1 cellpadding=0 cellspacing=0><tr><td>

page.50 < .temp

##################################################
###hier muesste bei pidInList = irgendwas mit .temp.renderObj.field##
### stehen bin noch am staunen und rätseln ##################
##################################################

page.60 = CONTENT
page.60{
table = tt_content
select {
pidInList = temp.renderObj.field

orderBy = sorting
where = colPos=1
begin = 0
max = 1
}
}
page.61 = TEXT
page.61.value = </td></tr></table><br>

page.100 < temp