Zum Inhalt springen

filelink - keine Ausgabe

Erstellt am 6. August 2003 · 12 Antworten · letzte Antwort am 25. Februar 2004

Tags: Frage

JaXtreme ·

Versuche schon seit mehreren Stunden die Fkt filelink, bisher erfolglos, zum Laufen zu bringen.

Auch die Suche auf Typo3.org und hier im Forum hat mich nicht weitergebracht...

Der derzeitige Code im Setup des Templates:

1.filelink {
   path = uploads/media/
   icon = 1
   icon.wrap = <td> | </td>
   file.wrap = <td> | </td>
   size = 1
   size.wrap = <td> | </td>
   jumpurl = 1
   target = _blank
   strWrap.wrap = <tr> | </tr>
}

page = PAGE
page.typeNum = 0
page.10 < 1.filelink

Habe schon mehrere Sachen ausprobiert, allerdings bleibt der Bildschirm immer weiß, nichts wird ausgegeben!

Kann mir jemand sagen, was in dem Code falsch ist, was fehlt etc.

Schon im Vorraus Danke für jede Antwort!

felix ·

Hi,

weiß zwar nicht ob es funktioniert, aber du musst wahrscheinlich noch einen Typ wie z. B. IMAGE angeben:

1.filelink = IMAGE
1.filelink {
  ...
}
...

Gruß

Felix

AchimE ·

Hallo,

ich hatte ein ähnliches Problem, auch ich versuche filelinks auszugeben, wobei bei mir die Daten aus einer Datenbankabfrage stammen, die der Backenduser mittels "InserRecords" auf einer Seite einbaut.
Hier mal der TS code:

tx_eim2report = COA
tx_eim2report {
  wrap = <TABLE border="0" cellpadding="0" cellspacing="0">|</table>

  5 = TEXT
  5.field = file
  5.if.isTrue.field = file
  5.filelink {
    labelStdWrap.override = TEXT
    labelStdWrap.override.field = headline

    path = uploads/tx_eim2report/        
    icon = 1
    icon.wrap = |
    icon_link = 1
    size = 1
    size.wrap = &nbsp<span class="size">[|&nbspBytes]</span>
    file.wrap = |
    jumpurl = 0
    target = _blank
    stdWrap = <tr><td>|</td></tr>
  }
  
  6 = TEXT
  6.field = headline
  6.if.isFalse.field = file
  6.stdWrap = <tr><td>|</td></tr> 
         
  10 = TEXT
  10.if.isTrue.field = date
  10.field = date
  10.date = d.m.Y
  10.dataWrap = <tr><td>|</td></tr>

  20 = TEXT
  20.if.isTrue.field = source
  20.dataWrap= <tr><td><b>{field:source}</b></td></tr>
  
}

tt_content.shortcut.20.0.conf.tx_eim2report_report = < tx_eim2report

Das obige TS rendert Datensätze des plugins eim2report, eine Erweiterung, die ich selbst geschrieben habe.
Wenn der Backenduser InsertRecords aufruft, und dann records der Datenbanktabelle tx_eim2report_report auf seiner Seite einfügt, dann werden diese nach obiger TS Vorschrift gerendert.

Für Dich von Interesse ist das Element 5 (und evtl. noch 6).
5 ist vom Typ TEXT und erhält als field Eigenschaft das Datenbankfeld "file" zugewiesen, dieses enthält bei mir den Dateibezeichner.
Innerhalb der filelink Definition weise ich als Label für den dateilink noch den Inhalt des Datenbankfelds "headline" zu, damit wird nicht der Dateiname angezeigt, sondern der Inhalt von headline.
Die anderen Angaben kennst Du ja.

Das Objekt 6 kommt nur dann zum Einsatz, wenn Objekt 5 nicht vorhanden ist (einmal wird auf isTrue.field = file geprüft, und einmal au isFalse).

Wenn also keine Datei vorhanden ist wird nur die headline angezeigt.

Ich hoffe, dies war hilfreich.

Viele Grüße

Achim.

decon ·

Hi ich habe hier auch das Problem dass men Content Element Filelink dem ich einen dateiverweis zugeordnet habe mir nichts anzeigt. Hat jemand das Problem schon gelöst. Wenn ja wär ich über Hilfe und Codeschnipsl dankbar.

gruesse

AchimE ·

mein obiges Beispiel funktioniert,
es wird ein Datensatz ausgegeben, der u.a. auch einen Filelink enthält.
Wenn Du Dein TS Setup postest und etwas näher erläuterst, was genau Du machen möchtest, kann ich vielleicht helfen...

Viele Grüße

Achim.

decon ·

Hi Achim,

meine Absicht: Ich möchte auf einer Seite Links ausgeben die zu einer geuploadeten Datei führen. Jeder dieser Links soll das aktuelle geänderte Datum enthalten.
Ich habe es zuerst mit normalen Text Content Elementen versucht. D.h. ich habe im RTE einen Link zu meinen Dateien gesetzt. Dann habe ich diesen Text aus tt_content geholt und das Änderungsdatum angefügt. siehe folgenden Code

temp.lc_date = CONTENT 
temp.lc_date { 
table = tt_content 
select { 
    pidInList = this
#  orderBy = tstamp DESC 
#  max = 1
  } 
renderObj = COA
renderObj.10 = TEXT
renderObj.10 { 
  field = bodytext
  }
renderObj.20 = TEXT
renderObj.20 { 
  field = tstamp 
  date = d.m.y - H:i
  wrap = <span style="font-family:Verdana; font-style:italic; font.size: 8pt; padding-left:10px;">zuletzt geändert am:&nbsp; | </span><br /><br />
  
  }
}

Jedoch bekomme ich keine Links ausgegeben.
Im Quelltext steht 1:1 der Inhalt aus dem bodytext des tt_contetnt. Also <LINK asdfasdf </LINK>

Deshalb wollte ich es nun mit dem Content Element Filelink versuchen. Doch wenn ich dieses auf die Seite packe und die upgeloadete Datei unter Files angebe dann bekomme ich auf der Seite nichts angezeigt.

AchimE ·

Hallo, probier es mal auf diese Weise:

temp.lc_date = CONTENT 
temp.lc_date { 
table = tt_content 
select { 
    pidInList = this 
#  orderBy = tstamp DESC 
#  max = 1 
  } 
renderObj = COA 
renderObj.10 < tt_content.text.20
renderObj.20 = TEXT 
renderObj.20 { 
  field = tstamp 
  date = d.m.y - H:i 
  wrap = <span style="font-family:Verdana; font-style:italic; font.size: 8pt; padding-left:10px;">zuletzt geändert am:&nbsp; | </span><br /><br /> 
  
  } 
}

In tt_content.text.20 befindet sich die Parse Funktion, mit der typo3 selbst <LINK> usw. durch "normales" HTML ersetzt. Du kannst also einfach typo3 die Arbeit für Dich machen lassen. 😉

Viele Grüße

Achim.

decon ·

Hi again,

erstmal danke für die Hilfe. Aber wenn ich deinen Code 1:1 übernehme dann bekomm ich keinen Content mehr ausgegeben. Ich bekomme nur noch meine Änderungsdaten ausgegeben.

Was mach ich blos falsch??? Woran kanns noch liegen?
Ich verstehs einfach nicht.

Wie geht das eigentlich von statten. WEnn ich den inhalt mit styles.content.get aus der db hol wie wird der content dann gerendert. ich meinwoher weiss denn typo dass es <LINK afas </LINK> mit nem <a href ersetzen muss?

AchimE ·

Hallo,

schau mal unter folgendem Link, dort ist eine Grafik mit einem Auszug aus tt_content zu finden, dort siehst Du wie typo3 die links mittels parsefunc und tags ersetzt.

http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=214&tx_extrepmgm_pi1[tocEl]=472&cHash=38a8ce6a13

Du kannst ja mal mittels dem typoscript object Browser nachsehen, ob in Deiner Installation tt_content.text.20 überhaupt so aussieht wie im Beispiel, falls nicht kannst Du ja immer noch selbst mittels parsefunc und tags dieses <LINK> durch einen <a href...> ersetzen.
Siehe hierzu auch:
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Parsefunc.html
und
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Tags.html

Viele Grüße und viel Erfolg

Achim.

decon ·

Also mein Object Browser sieht genauso aus wie auf dem Bild. Aber der Haken an der Sache ist ja dass wenn ich nun

renderObj.10 = TEXT
renderObj.10 { 
  field = bodytext
}

durch

renderObj.10 < tt_content.text.20

ersetze, dann zeigt er mir ja überhaupt keinen Inhalt mehr an. D.h. nicht mal mehr dieser output <LINK sfasd</LINK> ist zu sehen was bei der ersten Methode der Fall war.
Demnach muss der Fehler doch bei dieser Zeile liegen oder?

renderObj.10 < tt_content.text.20

Bin ratlos...
Hab keine Ahnung was ich noch machen kann.

decon ·

Woher weiss denn Typo dass ich den bodytext aus der table tt_content haben will?

reicht das aus? oder fehler da nicht noch was?

renderObj.10 < tt_content.text.20

Obiges gibt doch nur an wo die parsefunc is?

decon ·

Hi Achim,

erstmal wieder BESTEN DANK für deine Geduld und Hilfe.
Alles sieht bei mir genauso aus wie auf dem Bild.

Warums bei mir mit deiner Methode nicht klappt??????

Ich habe allerdings herausgefunden wies bei mir funktioniert:

renderObj = COA
renderObj.10 < tt_content.text.20
renderObj.10 = TEXT
renderObj.10 { 
  field = bodytext
  }

Jedoch habe ich leider TS noch nicht so richtig verstanden. Die Try and error Methode nerv dann halt immer 😉
Naja auf jeden FAll hab ich mal wieder ein kleines Erfolgserlebnis das mich mit Typo3 weiterarbeiten lässt.

Gruesse und Danke