Dateiverweise Original verlinken u. nicht Datei in uploads/media/

  • mercator mercator
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    10. 02. 2011, 14:29

    Hallo,

    ich habe mit dem Content-Element 'Liste Dateiverweise' eine Liste mit PDF's zum Download erstellt. Die PDF's liegen z.B. in meinem Verzeichnis: /fileadmin/documents/foo.pfd.

    Die Links der Liste zeigen dann 'intern' auf /uploads/media/foo_01.pdf
    Diese Datei foo.pdf wird an verschiedenen Stellen eingebunden u. dann jweils wieder im /upload/media/ Ordner kopiert. So weit so gut, aber das Problem ist, wenn ich die Datei 'foo.pdf' aktualisiere, muss ich alle Links auf der Webseite ändern, weil die ja auf eine Kopie im UploadsOrdner zeigen.

    Lange Rede kurzer Sinn, kann ich irgendwie unterbinden, dass T3 nicht eine Kopie im 'uploads/media/' Ordner verlinkt, sondern das Original?

    Ich hoffe ich hab das Problem einigermassen darstellen können.

    Grüsse


  • 1
  • mercator mercator
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    11. 02. 2011, 09:49

    Scheinbar bin ich nicht der erste mit dem Problem.

    vgl.: http://www.typo3.net/forum/beitraege/anfaengerfragen/8423/

    Gibt es da immer noch keinen Lösungsansatz?

    Grüsse

  • vixe vixe
    Sternenflotten-Admiral
    0 x
    164 Beiträge
    0 Hilfreiche Beiträge
    11. 02. 2011, 12:31

    Hallo,

    man kann dieses Standardverhalten über eine TCA - Manipulation ändern, indem der 'internal_type' auf 'file_reference' gesetzt wird. Somit kannst du nur noch auf Dateien aus der Dateiliste verweisen. D.h. allerdings, dass die Dateien generell nicht mehr direkt zum Inhaltselement upgeloadet werden können, sondern immer erst in die Dateiliste.

    Gruß

  • mercator mercator
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    11. 02. 2011, 14:43

    [quote="vixe"]
    Hallo,

    man kann dieses Standardverhalten über eine TCA - Manipulation ändern, indem der 'internal_type' auf 'file_reference' gesetzt wird. Somit kannst du nur noch auf Dateien aus der Dateiliste verweisen. D.h. allerdings, dass die Dateien generell nicht mehr direkt zum Inhaltselement upgeloadet werden können, sondern immer erst in die Dateiliste.

    Gruß
    [/quote]
    Danke, ich hab mal gesucht wo das zu ändern wäre und hab in Datei:
    typo3/sysext/cms/tbl_tt_content.php
    im Array 'media' geändert. Es stimmt ich kann dann nicht mehr direkt hochladen, aber der Link wird trotzdem nicht angezeigt. Irgendwo mein ich auf meine Websuche zum Thema mal gelesen zu haben, dass das 'filelink' Modul von Haus aus nur im uploads/media Ordner verlinkt. So ist es auch, ich kann im BE den Link anlegen, aber im FE wird nichts angezeigt.

    Gruss

  • jonny87 jonny87
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    07. 05. 2013, 11:08

    Hi,
    hatte das gleiche Problem gerade auch mit der 4.7 Version, folgend kann man das Problem lösen:
    In der extTables.php:

    1. $TCA['tt_content']['columns']['media']['config']['internal_type'] = 'file_reference';
    2. $TCA['tt_content']['columns']['media']['config']['uploadfolder'] = '';

    Dann werden die Dateien Referenziert, jedoch im Frontend nicht ausgeben, dazu muss man unter typo3/sysext/css_styled_content/p1/class.tx_cssstyledcontent_pi1.php folgendes ändern:

    Zeile 283 bis 288:

    1. if (is_array($GLOBALS['TCA']['tt_content']['columns'][$field]) && isset($GLOBALS['TCA']['tt_content']['columns'][$field]['config']['uploadfolder'])) {
    2. if (empty($GLOBALS['TCA']['tt_content']['columns'][$field]['config']['uploadfolder'])) {
    3. $path = '';
    4. }else{
    5. $path = $GLOBALS['TCA']['tt_content']['columns'][$field]['config']['uploadfolder'] .'/';
    6. }

    Zeile 335:

    1. $basePath = $path;

    Und noch Zeile 336 bis 344:

    1. foreach($fileArray as $key => $fileName) {
    2. $absPath = t3lib_div::getFileAbsFileName($basePath.$fileName);
    3. $dir = dirname($fileName);
    4. if (empty($dir)) {
    5. $path = $basePath;
    6. } else {
    7. $path = $basePath . $dir . '/';
    8. $fileName = basename($fileName);
    9. }

    So funktioniert das ganze bei mir, mit ner 4.7.10er ...

    Gruß
    Jonny

  • 1