Ankündigung

Einklappen
Keine Ankündigung bisher.

"Dateien als Download" Titel statt Dateinamen ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • "Dateien als Download" Titel statt Dateinamen ausgeben

    Hallo,

    gibt es eine Möglichkeit anstatt des Dateinamens den Titel auszugeben?

    Und noch eine Frage:
    Ich habe bei einem Bild "Bildlink-Adresse" angehakt und möchte auf ein PDF verlinken.
    Wenn ich dann im CE den Link bearbeite, zeigt es mir in der Dateiverwaltung nur Ordner an, aber keine Dateien.
    Das Feld "erlaubte Dateitypen" habe ich komplett leer gelassen.

    Ideal wäre es sogar, wenn ich das Template derartig modifizieren könnte, sodass die URL des zuvor definierten Dateidownloads als URL für den Bildlink autom. hergenommen wird.
    Aktuell werden nur beide Felder via
    Code:
    ->html()
    ausgegeben.

  • #2
    Das Template kann frei modifiziert werden. Jedes Attribut hat eine Template-Auswahl. Die html() Methode durchläuft die eingestellten Templates.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Habe mir das Template angesehen.

      Mit
      Code:
      <?php echo $this->value; ?>
      wird scheinbar das komplette ce_download.html5 Template ausgegeben. Nun habe ich das Problem, dass man im CE beim Typ "Dateiauswahl" mit der Option "Dateien als Download" kein Feld für einen Link-Text hat. Hierfür steht ja im ce_download.html5 folgender Code:

      Code:
      <?= $this->link ?>
      So wie es scheint nimmt er also stattdessen einfach den Dateinamen.
      Stimmt das so oder übersehe ich hier etwas?

      Ich habe also versucht, stattdessen den Typ "Hyperlink" zu verwenden. Per default wird dabei aber keine Auswahl in der Dateiverwaltung möglich, und entsprechende Optionen um dies zu erlauben scheint es nicht zu geben.

      Kommentar


      • #4
        Standardmäßig durchläuft dieses Attribut die Download-Element Methoden.

        Über $this->rawValue bzw. $this->rawValues kommst du auch an die rohen Daten. (siehe $this in einem php debugger auslesen). Damit nach eigenem Ermessen das Element erstellen.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Danke für die Hilfe.

          Bin leider in PHP nicht so bewandert, habs noch nicht ganz hinbekommen.

          Mit
          Code:
          <?php echo $this->showTemplateVars(); ?>
          hab ich mir mal die Variablen ausgegeben.

          Habe dann mit
          Code:
          <?php echo $this->title; ?>
          den Titel in einem Link ausgeben lassen.

          Nun bräuchte ich "nur" noch den Pfad der Datei. Habe ich bei den Variablen nicht gefunden, bzw. weiß ich nicht wie man $this->rawValue weiter verarbeiten müsste.

          Kommentar


          • #6
            Ich habe es in CE gerade getestet. Man muss eigentlich gar nichts ändern. Sobald man in der Dateiverwaltung für die Datei einen Titel hinterlegt hat, wird dieser in der Download-Liste genutzt. Ausgabe ganz normal über ->html() dann in CE.

            ---
            Hier die manuellen Wege:

            Methode 1:
            Mach es vielleicht besser direkt im customelement Template. Ich denke das ist einfacher als im Attribut-Template. Dort kommt mit ->value() direkt die Werte binär rein in einem Array. Den musst du zerlegen und über die FilesModel Klasse die Pfade ausgeben lassen.

            Hier ist dies aufgezeigt: http://forum.premium-contao-themes.c...=1428#post1428

            Methode 2: Du kannst auch das ce_download Template anpacken. Dies wird standardmäßig ebenfalls abgearbeitet, da CE hier auf Contao Standards aufbaut.
            Zuletzt geändert von Tim; 01.11.2017, 08:42.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Ich habe es in CE gerade getestet. Man muss eigentlich gar nichts ändern. Sobald man in der Dateiverwaltung für die Datei einen Titel hinterlegt hat, wird dieser in der Download-Liste genutzt. Ausgabe ganz normal über ->html() dann in CE.
              Leider funktioniert eben genau das bei mir so nicht, sonst würde ich ja einfach diesen Standard-Weg benutzen. Oder kann das auch irgendwie gecached sein und es liegt daran?

              Template:
              Code:
               <div class="item <?php echo $this->class; ?> block" <?php echo $this->cssID; ?>>
                <?php echo $this->field('produkte_download_ueberschrift')->html(); ?>
                <?php if(count($this->group('produkte_download')) > 0): ?>
                <?php foreach($this->group('produkte_download') as $i => $fields): ?>
                <div class="download-container">
                <?php echo $this->field('produkte_download_bild#'.$i)->html(); ?>
                <div class="text-container">
                <div class="text">
                <?php echo $this->field('produkte_download_text#'.$i)->html(); ?>
                </div>
                <?php echo $this->field('produkte_download_link#'.$i)->html(); ?>
                </div>
                </div>
                <?php endforeach; ?>
                <?php endif; ?>
                </div>
              BE:
              Typ: Dateiauswahl
              "Datei als Download" aktiviert
              Alias: produkte_download_link

              Sonst keine Nennenswerten Einstellungen gemacht.

              Kommentar


              • #8
                Zeig mal einen Screenshot der Datei in der Dateiveraltung Bearbeiten-Ebene der Datei.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Anbei der Screenshot.

                  Kommentar


                  • #10
                    Ist deine Seite auch auf Deutsch Österreich eingestellt? de_AT bzw. de-AT? Sonst wird Contao da weiterhin als Fallback den realen Dateinamen nutzen.
                    http://www.premium-contao-themes.com

                    Kommentar


                    • #11
                      Im Startpunkt in der Seitenstruktur ist "de-AT" eingestellt und auch "Sprachen-Fallback" aktiviert. Dies ist jedoch die einzige Sprache.

                      Aber kann es mit den Einstellungen zu den Seitennamen zu tun haben? Siehe anbei.

                      Hier das .htaccess snippet:
                      Code:
                      # If you do not want to use an URL suffix at all, you have to add a third
                        # line to prevent URLs that point to folders from being rewritten (see #4031).
                        #
                           RewriteCond %{REQUEST_FILENAME} !-f
                           RewriteCond %{REQUEST_FILENAME} !-d
                           RewriteRule .* index.php [L]
                      URL's der Seiten wo Downloads eingebunden sind sehen so aus: http://dev.mysite.at/produkte/neubau/ausfuehrung-3

                      HTML-Code des Downloads sieht so aus:
                      Code:
                      <img src="assets/contao/images/iconPDF.gif" width="18" height="18" alt="" class="mime_icon"> <a href="produkte/neubau/ausfuehrung-3?file=files/MySite/downloads/wissenswertes/Neubaufolder_Web.pdf" title="Die Datei Neubaufolder_Web.pdf herunterladen">Neubaufolder_Web.pdf <span class="size">(2,0 MiB)</span></a>

                      Kommentar


                      • #12
                        Hallo Tim,

                        habe leider noch immer dieses Problem und nun fragt der Kunde nochmal explizit nach. An der Version dürfte es ja nicht liegen, da du damals in einem Test ein anderes Ergebnis bekommen hast?

                        Kommentar

                        Lädt...
                        X