MetaModels Workshop in Berlin
Ergebnis 1 bis 34 von 34

Thema: [gelöst] contao-leads Dateianhänge

  1. #1
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Frage [gelöst] contao-leads Dateianhänge

    Hallo,

    wir möchten gerne ausgefüllte Formulare für Bewerbungen temporär in der Datenbank speichern, damit diese nicht lange per Email von A nach B gesendet werden müssen. Daher müssen auch die Anhänge irgendwie verfügbar bleiben. Wie läuft das mit Leads in so einem Fall ab?

    Viele Grüße und Danke vorab!
    Geändert von pcartist (12.04.2017 um 10:42 Uhr)

  2. #2
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Standard

    Für's Protokoll:

    Die entsprechende Funktionalität wird eigentlich durch den Contao Formulargenerator bereit gestellt. Damit lässt sich eine hochgeladene Datei in einem gewünschten Zielverzeichnis speichern.
    In contao-leads ist der Link einsehbar. Ich werden nun im BE das Template von contao-leads so umstricken, dass es bei Pfadangaben einen schönen Link daraus baut. Das sollte erst einmal ausreichend sein.

  3. #3
    Contao-Nutzer Avatar von minstyle
    Registriert seit
    26.06.2009.
    Beiträge
    232

    Standard

    Und wie hast du es hinbekommen?

  4. #4
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Standard

    Hallo,

    im Formulargenerator kannst Du beim Feldtyp Dateiupload einen Speicherort festlegen. Ich habe Dir einen Screenshot angelegt. In Notification-Center setzt Du Dir den Link dann manuell zusammen https://www.deine-url.de/##form_attachment1##

    Du kannst auch einstellen, dass die Anhänge gleich mitgesendet werden. Das müsste in den Versandeinstellungen des Formulars zu regeln sein. Habe ich aber gerade nicht im Kopf.

    Zum speichern der Einträge in der DB kommt Contao-Leads zum Einsatz. Nach der Installation hast Du im Formularfeld Dateiupload noch ein Auswahlmenü "In Anfrage speichern" Dann wird der Pfad zur Datei ebenfalls mit in der DB abgelegt.

    Hoffe, das hilft Dir weiter.

    Bildschirmfoto 2018-01-18 um 21.07.17.png

  5. #5
    Contao-Nutzer Avatar von minstyle
    Registriert seit
    26.06.2009.
    Beiträge
    232

    Standard

    Danke, so habe ich es bereits umgesetzt. Aber der Dateipfad in Leads sieht dann bei mir beispielsweise so aus: 0052e2fa-fc87-11e7-86e3-08606e445f15

    Ich habe folgendes Problem:
    https://community.contao.org/de/show...geben&p=462073
    Geändert von minstyle (18.01.2018 um 20:31 Uhr)

  6. #6
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    5.561
    Partner-ID
    107
    User beschenken
    Wunschliste

    Standard

    Den Pfad definierst du im Formular selbst beim Feldtyp „Upload”. Dort kannst du ein Verzeichnis festlegen, in dem die Anhänge gespeichert werden.
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Für Contao abstimmen: https://bitnami.com/product/contao/widget
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://planepix.gitbooks.io/erfahru...tao-4/content/
    Contao 4 Hoster: https://github.com/contao/contao-manager/wiki

    It's OpenSource. So invest with coding, testing and time.

  7. #7
    Contao-Nutzer Avatar von minstyle
    Registriert seit
    26.06.2009.
    Beiträge
    232

    Standard

    Ist bereits alles geschehen. Die Datei werden in den entsprechenden Verzeichnissen hochgeladen. In Leads sieht mein Dateipfad allerdings so aus: 0052e2fa-fc87-11e7-86e3-08606e445f15

    Wie kann ich aus dieser Ansicht einen relativen Pfad anzeigen lassen, wie z. B. files/uploads/pdf/dateiname.pdf?

  8. #8
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Standard

    ..Dateiupload einen Speicherort festlegen..
    Meine Rede... Hauptsache es hat geklappt

  9. #9
    Contao-Nutzer Avatar von minstyle
    Registriert seit
    26.06.2009.
    Beiträge
    232

    Standard

    Das Problem: Ich weiß nicht, welche Dateien hochgeladen wurden ...

  10. #10
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Standard

    Ich denke, es liegt an dem Select-Menu im Formularfeld selbst.

    Bildschirmfoto 2018-01-18 um 21.37.30.png

  11. #11
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    5.561
    Partner-ID
    107
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von minstyle Beitrag anzeigen
    Ist bereits alles geschehen. Die Datei werden in den entsprechenden Verzeichnissen hochgeladen. In Leads sieht mein Dateipfad allerdings so aus: 0052e2fa-fc87-11e7-86e3-08606e445f15

    Wie kann ich aus dieser Ansicht einen relativen Pfad anzeigen lassen, wie z. B. files/uploads/pdf/dateiname.pdf?
    Ja das ist der UUID-Wert.

    Steht der Pfad nicht in der E-Mail?
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Für Contao abstimmen: https://bitnami.com/product/contao/widget
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://planepix.gitbooks.io/erfahru...tao-4/content/
    Contao 4 Hoster: https://github.com/contao/contao-manager/wiki

    It's OpenSource. So invest with coding, testing and time.

  12. #12
    Contao-Nutzer Avatar von minstyle
    Registriert seit
    26.06.2009.
    Beiträge
    232

    Standard

    Zitat Zitat von pcartist Beitrag anzeigen
    Ich denke, es liegt an dem Select-Menu im Formularfeld selbst.

    Bildschirmfoto 2018-01-18 um 21.37.30.png
    Und was kann ich dann machen? Ich möchte doch nur, dass mir in Leads anstatt des Zahlsenstrings ein normaler Dateipfad im Backend von Contao 4 angezeigt wird.

  13. #13
    Contao-Nutzer Avatar von minstyle
    Registriert seit
    26.06.2009.
    Beiträge
    232

    Standard

    Zitat Zitat von planepix Beitrag anzeigen
    Ja das ist der UUID-Wert.

    Steht der Pfad nicht in der E-Mail?
    Doch das schon. Aber in Leads wird mir nur der UUID-Wert angezeigt.

  14. #14
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Standard

    @planepix: nur, wenn er es versendet haben will. Es geht um die Sicherung mit contao-leads

    @minstyle: eigentlich macht contao-leads das automatisch. Allerdings hatte ich das bisher nur mit der 3.5er im Einsatz. Dir wird im Endeffekt nun die UUID angezeigt, wenn ich das richtig interpretiere. Eventuell kannst Du für die Ausgabe ein Backendtemplate anlegen, und den Wert durchparsen.

  15. #15
    Contao-Nutzer Avatar von minstyle
    Registriert seit
    26.06.2009.
    Beiträge
    232

    Standard

    Zitat Zitat von pcartist Beitrag anzeigen
    @planepix: nur, wenn er es versendet haben will. Es geht um die Sicherung mit contao-leads

    @minstyle: eigentlich macht contao-leads das automatisch. Allerdings hatte ich das bisher nur mit der 3.5er im Einsatz. Dir wird im Endeffekt nun die UUID angezeigt, wenn ich das richtig interpretiere. Eventuell kannst Du für die Ausgabe ein Backendtemplate anlegen, und den Wert durchparsen.
    Korrekt, es geht aktuell nur um Leads. Hier wird mir der Pfad via UUID angezeigt. Aber wie kann ich hierfür ein Backend Template definieren? Die Erweiterung hat lediglich dieses Template, welches ich überschreiben könnte:

    https://github.com/terminal42/contao...ads_show.html5

    Oder sehe ich das falsch?

  16. #16
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    5.561
    Partner-ID
    107
    User beschenken
    Wunschliste

    Standard

    oder das als Issue / FeatureRequest auf Github eintragen:
    https://github.com/terminal42/contao-leads/issues
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Für Contao abstimmen: https://bitnami.com/product/contao/widget
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://planepix.gitbooks.io/erfahru...tao-4/content/
    Contao 4 Hoster: https://github.com/contao/contao-manager/wiki

    It's OpenSource. So invest with coding, testing and time.

  17. #17
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Standard

    In der Templateverwaltung ein neues Template anlegen. Sollte be_leads_show.html5 heissen. Wenn Du das bearbeitest und nicht umbenennst, sollte Contao das verwenden. Allerdings kann ich Dir da bei der finalen Lösung nicht wirklich helfen, da ich mir das sparen konnte.

    Ansonsten mal bei Github ein Ticket dazu eröffnen, denn der echte Pfad sollte schon angezeigt werden.

  18. #18
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    5.561
    Partner-ID
    107
    User beschenken
    Wunschliste

    Standard

    ggf. hilfreich zu Umwandeln UUID:
    https://community.contao.org/de/show...-Pfad-ausgeben
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Für Contao abstimmen: https://bitnami.com/product/contao/widget
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://planepix.gitbooks.io/erfahru...tao-4/content/
    Contao 4 Hoster: https://github.com/contao/contao-manager/wiki

    It's OpenSource. So invest with coding, testing and time.

  19. #19
    Contao-Nutzer Avatar von minstyle
    Registriert seit
    26.06.2009.
    Beiträge
    232

    Standard

    Zitat Zitat von planepix Beitrag anzeigen
    Hilft mir im Ungang mit Leads leider nicht weiter, da im dazugehörigen Template nirgends die Dateiuploads behandelt werden

  20. #20
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Standard

    Schau mal in der Datenbank nach, ob bei Dateien der Pfad als label drin steht. Als value hättest Du dann die UUID
    Dann im Template nachsehen, ob das label ausgegeben wird.

    Ansonsten könntest Du dir erst einmal ansehen, welche Daten Du im Template zur Verfügung hast. Wenn Du hier die UUID identifizieren kannst, hast Du die Möglichkeit eine Condition ins Template zu setzen. Als letzten Weg kann man z.B. mit einem Stingvergleich auf eine gesetzte CSS-Klasse des Formularfelds prüfen und dann das Value durch den Contao Insert-Tag jagen.

  21. #21
    Contao-Nutzer Avatar von pcartist
    Registriert seit
    28.06.2009.
    Ort
    Rosenheim
    Beiträge
    144

    Standard

    Ich habe mir das eben auch in Contao4 angesehen. Vermutlich ein Bug, da auch die CSS-Klasse nicht übergeben wird. Am Besten Du machst ein Ticket bei Github auf.

  22. #22
    Contao-Nutzer
    Registriert seit
    12.03.2012.
    Ort
    Dresden
    Beiträge
    151

    Standard

    Gibt es hier inzwischen eine Lösung? Ich stehe vor dem selben Problem.

    Danke und viele Grüße
    Silvia

  23. #23
    Contao-Nutzer
    Registriert seit
    05.02.2010.
    Ort
    Hamburg
    Beiträge
    73

    Standard

    Ja, hier auch.
    Ich frage mich wo genau denn die be_leads_show.html5 zum Einsatz kommt?

    Welche Datei(en) sind für die Auflistung der Tabelleninhalte von leads im Backend zuständig?
    Ich meine weder die Anfragen noch die Liste der Leads, die nach Monaten aufgelistet werden, sondern das Auslesen und Auflisten der Datenbankinhalte.
    Ich würde das gerne anpassen, nur finde ich wie gesagt das Template nicht.

    Beispiel IST:
    HTML-Code:
    Name: Name [test](<ist hellgrau auf weiß)
    Beispiel SOLL:
    HTML-Code:
    Name: test (<schwarz auf weiß)

  24. #24
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.330

    Standard

    Ohne geschaut zu haben, konzentriere Dich auf die entsprechende PHP Datei im dca-Verzeichnis von leads. Da werden die Backend Ausgaben gemacht.

    Gesendet von meinem L52 mit Tapatalk
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  25. #25
    Contao-Nutzer
    Registriert seit
    05.02.2010.
    Ort
    Hamburg
    Beiträge
    73

    Standard

    Ja, da finden verschiedene datenbankrelevante Dinge statt, die ich nicht ganz verstehe und nur erahnen kann.
    Aber ein Codesnippet oder Template, das den BE-Seitenaufbau inkl. Inline-CSS generiert und entsprechend Daten aus der Datenbank listet finde ich nicht im DCA Ordner.

  26. #26
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.330

    Standard

    Ich habe mal den leads-Ordner durchsucht und die Verwendung von be_leads_show in dca/tl_leads.php gefunden:
    PHP-Code:
    $template = new \BackendTemplate('be_leads_show');
    $template->recordId         $dc->id;
    $template->referer          = \System::getReferer(true);
    $template->subheadline      sprintf($GLOBALS['TL_LANG']['MSC']['showRecord'], 'ID ' $dc->id);
    $template->createdLabel     $GLOBALS['TL_LANG']['tl_lead']['created'][0];
    $template->createdValue     = \Date::parse($GLOBALS['TL_CONFIG']['datimFormat'], $objForm->created);
    $template->formLabel        $GLOBALS['TL_LANG']['tl_lead']['form_id'][0];
    $template->formTitle        $objForm->form_title;
    $template->formId           $objForm->form_id;

    $template->isMasterForm     $objForm->master_id == $objForm->form_id;
    $template->masterLabel      $GLOBALS['TL_LANG']['tl_lead']['master_id'][0];
    $template->masterTitle      $objForm->master_title;
    $template->masterId         $objForm->master_id;

    $template->languageLabel    $GLOBALS['TL_LANG']['tl_lead']['language'][0];
    $template->languageTrans    $arrLanguages[$objForm->language];
    $template->languageValue    $objForm->language;

    $template->hasMember        $objForm->member_id 0;
    $template->memberLabel      $GLOBALS['TL_LANG']['tl_lead']['member'][0];
    $template->memberName       $objForm->member_name;
    $template->memberId         $objForm->member_id;

    $i 0;
    $rows = array();

    while (
    $objData->next()) {
        
    $rows[] = array(
            
    'label' => $objData->name,
            
    'value' => \Leads\Leads::formatValue($objData),
            
    'class' => ($i 'tl_bg' '')
        );

        ++
    $i;
    }

    $template->data $rows;
    return 
    $template->parse(); 
    Geändert von Samson1964 (08.06.2018 um 05:14 Uhr)
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  27. #27
    Contao-Nutzer
    Registriert seit
    05.02.2010.
    Ort
    Hamburg
    Beiträge
    73

    Standard

    Danke für Deine Hilfe den Kern des Listings zu lokalisieren, das könnte später noch mal hilfreich sein. Geahnt hatte ich es schon, ich lerne gerne dazu
    Hast du schon mal versucht das be_leads_show.html5 zu editieren? Die Inline-CSS z.B.? Das bleibt bei mir leider wirkungslos.
    Im be-Template ist auch eine HTML-Tabelle drin. Wenn ich die Auflistung der Leads-Daten im Backend untersuche, sind es keine HTML Tabellen sondern Listen.
    (3.5.35)

  28. #28
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.330

    Standard

    Unter Layout -> Templates kannst Du das be_leads_show einfach überschreiben. Eine weitere Möglichkeit ist es direkt die Ausgabe zu ändern. Dazu legst Du in einem eigenen Modulverzeichnis eine dca/tl_lead.php an und überschreibst dort die oben von mir zitierte show-Funktion. Theoretisch müßte die über ein List-Callback aufgerufen werden. Dem scheint hier nicht so zu sein:
    PHP-Code:
        /**
         * Override the default "show" dialog.
         *
         * @param $dc
         *
         * @return string
         */
        
    public function show($dc
    Das "override the default dialog" läßt mich stutzen. Offensichtlich kann man das Listing direkt beeinflussen ohne Callback. Und weiter oben steht bei den operations:
    PHP-Code:
                'show' => array
                (
                    
    'label'         => &$GLOBALS['TL_LANG']['tl_lead']['show'],
                    
    'href'          => 'key=show',
                    
    'icon'          => 'show.gif'
                
    ), 
    Und ergänzend steht in der config.php:
    PHP-Code:
    'show'          => array('tl_lead''show'), 
    womit festgelegt wird, was bei key=show aufgerufen werden soll.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  29. #29
    Contao-Nutzer
    Registriert seit
    05.02.2010.
    Ort
    Hamburg
    Beiträge
    73

    Standard

    Zitat Zitat von Samson1964 Beitrag anzeigen
    Unter Layout -> Templates kannst Du das be_leads_show einfach überschreiben.
    Eben nicht!

    Ok, noch mal von vorne:
    Wenn ich mir die gespeicherten Formulardaten von Leads im Backend anzeigen lasse, kommt , analog zu meinem Frontendformular, folgendes listing:

    HTML-Code:
    Name: Name [Merkel]
    Vorname: Vorname [Angela]
    Strasse: Strasse [Strassenname]
    usw.
    Ich möchte den zweiten Wert rauslöschen, die eckigen Klammern entfernen und diesen Wert in Klammern schwarz statt grau definieren.
    Am Ende soll die Liste bereinigt so aussen:

    HTML-Code:
    Name: Angela
    Nachname: Merkel
    Strasse: Strassenname
    Nun schaue ich in den Quelltext und sehe folgenden Code, mit dem ein Formularfeld dargestellt wird:

    HTML-Code:
    <li id="li_818">
    <div class="tl_content odd click2edit toggle_select" onmouseover="Theme.hoverDiv(this,1)" onmouseout="Theme.hoverDiv(this,0)" style="">
    <div class="tl_content_right"></div>Name: Name <span style="color:#b3b3b3; padding-left:3px;">[Merkel]</span></div>
    </li>
    Dann schaue ich in die be_leads_show.html5 und finde 4 Optionen, die auf diesen Codesnippet passen:

    PHP-Code:
    <div id="tl_buttons">
        <a href="<?php echo $this->referer?>" class="header_back" title="<?php echo $GLOBALS['TL_LANG']['MSC']['backBT']; ?>" accesskey="b" onclick="Backend.getScrollOffset()">
            <?php echo $GLOBALS['TL_LANG']['MSC']['backBT']; ?>
        </a>
    </div>

    <h2 class="sub_headline"><?php echo $this->subheadline?></h2>
    <h1>TEST</h1>
    <table class="tl_show">
        <tbody>
            <tr>
                <td><span class="tl_label">ID: </span></td>
                <td><?php echo $this->recordId?></td>
            </tr>
            <tr>
                <td class="tl_bg"><span class="tl_label"><?php echo $this->createdLabel?>: </span></td>
                <td class="tl_bg"><?php echo $this->createdValue?></td>
            </tr>
            <tr>
                <td><span class="tl_label"><?php echo $this->formLabel?>: </span></td>
                <td><?php echo $this->formTitle?> <span style="color:#b3b3b3; padding-left:3px;">[ID <?php echo $this->formId?>]</span></td>
            </tr>

            <?php if (!$this->isMasterForm): ?>

            <tr>
                <td class="tl_bg"><span class="tl_label"><?php echo $this->masterLabel?>: </span></td>
                <td class="tl_bg"><?php echo $this->masterTitle?> <span style="color:#b3b3b3; padding-left:3px;">[ID <?php echo $this->masterId?>]</span></td>
            </tr>

            <?php endif; ?>

            <tr>
                <td<?php if ($this->isMasterForm): ?> class="tl_bg"<?php endif; ?>><span class="tl_label"><?php echo $this->languageLabel?>: </span></td>
                <td<?php if ($this->isMasterForm): ?> class="tl_bg"<?php endif; ?>><?php echo $this->languageTrans?> <span style="color:#b3b3b3; padding-left:3px;">[ID <?php echo $this->languageValue?>]</span></td>
            </tr>

            <?php if ($this->hasMember): ?>

            <tr>
                <td<?php if (!$this->isMasterForm): ?> class="tl_bg"<?php endif; ?>><span class="tl_label"><?php echo $this->memberLabel?>: </span></td>
                <td<?php if (!$this->isMasterForm): ?> class="tl_bg"<?php endif; ?>><?php echo $this->memberName?> <span style="color:#b3b3b3; padding-left:3px;">[ID <?php echo $this->memberId?>]</span></span></td>
            </tr>

            <?php endif; ?>

            <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
            </tr>

            <?php foreach($this->data as $data): ?>

            <tr>
                <td<?php if ($data['class']): ?> class="<?php echo $data['class']; ?>"<?php endif; ?>><span class="tl_label"><?php echo $data['label']; ?>: </span></td>
                <td<?php if ($data['class']): ?> class="<?php echo $data['class']; ?>"<?php endif; ?>><?php echo $data['value']; ?></td>
            </tr>

            <?php endforeach; ?>

        </tbody>
    </table>
    Egal was ich in diesem Template verändere, lösche oder hinzufüge: Es hat keinen Einfluss. Die Liste bleibt unverändert. Zudem sorgt hier eine Tabelle für das Layout des Datensatzes, keine Listen. (Wobei das sicher irgendwo anders ersetzt wird)

  30. #30
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.330

    Standard

    Alles Quatsch was ich geschrieben habe. be_leads_show ist das Template für das Info-Popup. Die Auflistung der Datensätze findet in dca/tl_lead_data.php statt. Dort ist die Funktion listRows als Callback definiert:
    PHP-Code:
    'child_record_callback' => array('tl_lead_data''listRows'
    Und weiter unten steht die Funktion:
    PHP-Code:
    public function listRows($row)
    {
        return 
    $row['name'] . ': ' . \Leads\Leads::formatValue((object) $row);

    Du mußt diese Callback-Funktion nur mit Deinem eigenen DCA überschreiben.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  31. #31
    Contao-Nutzer
    Registriert seit
    05.02.2010.
    Ort
    Hamburg
    Beiträge
    73

    Standard

    Ok, danke. Das ergibt jetzt einen Sinn.
    Wobei ich gerne nur name und value aus der tl_lead_data gelistet haben möchte.

    Zitat Zitat von Samson1964 Beitrag anzeigen
    PHP-Code:
    public function listRows($row)
    {
        return 
    $row['name'] . ': ' . \Leads\Leads::formatValue((object) $row);

    Du mußt diese Callback-Funktion nur mit Deinem eigenen DCA überschreiben.
    Das habe ich noch nie gemacht.
    Reicht es nicht wenn ich in der tl_lead_data.php das Label rausstreiche?
    PHP-Code:
     'label' => array
            (
                
    'sql'                     => "text NULL"
            
    ), 
    Eine Veränderung gibt es nicht.
    Das Label des FE-Formulars wird weiter im BE mit gelistet. Wichtig sind wie gesagt nur der Feldname und der Wert.


    Ungelöst ist immer noch das Rätsel, woher die eckigen Klammern und der color-Wert #b3b3b3 in der inline CSS für den value- Wert kommen.

    Welche Rolle spielt der DcaWizard in diesem Zusammenhang?
    Gefunden habe ich z.B. sowas hier in der DcaWizard.php:
    PHP-Code:
     /**
         * Generate a row operation
         *
         * @param string $operation operation name
         * @param array  $row       Db row
         *
         * @return string
         */
        
    public function generateRowOperation($operation$row)
        {
            
    // Load the button definition from the subtable
            
    $def $GLOBALS['TL_DCA'][$this->foreignTable]['list']['operations'][$operation];

            
    $id specialchars(rawurldecode($row['id']));
            
    $buttonHref $this->getButtonHref() . '&amp;' $def['href'] . '&amp;id='.$row['id'] . '&amp;dcawizard_operation=1';

            
    $label $def['label'][0] ?: $operation;
            
    $title sprintf($def['label'][1] ?: $operation$id);
            
    $attributes = ($def['attributes'] != '') ? ' ' ltrim(sprintf($def['attributes'], $id$id)) : '';

            
    // Dca wizard specific
            
    $arrBaseOptions $this->getDcaWizardOptions();
            
    $arrBaseOptions['url'] = $buttonHref;
            
    $attributes .= ' data-options="' specialchars(json_encode($arrBaseOptions)) . '"';
            
    $attributes .= ' onclick="Backend.getScrollOffset();DcaWizard.openModalWindow(JSON.parse(this.getAttribute(\'data-options\')));return false"';

            
    // Add the key as CSS class
            
    if (strpos($attributes'class="') !== false) {
                
    $attributes str_replace('class="''class="' $operation ' '$attributes);
            } else {
                
    $attributes ' class="' $operation '"' $attributes;
            }

            
    // Call a custom function instead of using the default button
            
    if (is_array($def['button_callback']))  {
                return \
    System::importStatic($def['button_callback'][0])->{$def['button_callback'][1]}($row$def['href'], $label$title$def['icon'], $attributes);
            } elseif (
    is_callable($def['button_callback'])) {
                return 
    $def['button_callback']($row$def['href'], $label$title$def['icon'], $attributes);
            }

            return 
    sprintf(
                
    '<a href="%s" title="%s"%s>%s</a> ',
                
    $buttonHref,
                
    specialchars($title),
                
    $attributes,
                \
    Image::getHtml($def['icon'], $label)
            );
        } 

    In der /leads/library/leads.php @ Zeile 93 steht ja auch sowas hier:

    PHP-Code:
    /**
         * Format a lead field for list view.
         *
         * @param object
         *
         * @return string
         */
        
    public static function formatValue($objData)
        {
            
    $fieldModel = \FormFieldModel::findByPk($objData->field_id);

            if (
    null !== $fieldModel) {
                
    $data $fieldModel->row();
                
    $data['eval'] = $fieldModel->row();
                
    $strValue Format::dcaValueFromArray($data$objData->value);
                
    $strLabel Format::dcaLabelFromArray($data);

                return 
    $strLabel ' <span style="color:#b3b3b3; padding-left:3px;">[' $strValue ']</span>';
            }

            
    $strValue implode(', 'deserialize($objData->valuetrue));

            if (
    $objData->label != '') {
                
    $strLabel $objData->label;
                
    $arrLabel deserialize($objData->labeltrue);

                if (!empty(
    $arrLabel)) {
                    
    $strLabel implode(', '$arrLabel);
                }

                
    $strValue $strLabel ' <span style="color:#b3b3b3; padding-left:3px;">[' $strValue ']</span>';
            }

            return 
    $strValue;
        } 
    Aber da ändert sich nach dem Editieren auch nix.
    Geändert von zorlac (10.06.2018 um 12:20 Uhr)

  32. #32
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.330

    Standard

    Ich würde den child_record_callback einfach überschreiben. Da kannst Du Deine ganz eigene Ausgabe einer Zeile machen.

    Lege Dir z.B. einen Ordner zorlac in system/modules an. Und darin eine Datei dca/tl_lead_data.php mit diesem Inhalt:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_lead_data']['list']['sorting']['child_record_callback'] = array('tl_lead_data_zorlac''listRows'); // Callback mit eigener Funktion überschreiben

    class tl_lead_data_zorlac extends Backend
    {
        public function 
    listRows($row)
        {
            
    // Und hier die Ausgabe von $row
        
    }

    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  33. #33
    Contao-Nutzer
    Registriert seit
    12.03.2012.
    Ort
    Dresden
    Beiträge
    151

    Standard

    Thema des Threads ist doch, dass die Dateianhänge nur als UUID und nicht als Dateipfad angezeigt werden,
    Meine Frage war, ob es dafür inzwischen eine Lösung gibt, das Thema ist in den letzten Beiträgen wohl ein wenig abgeschwiffen.

    Also nochmal: Wie kann man die Dateianhänge als Dateipfad ausgeben und nicht als UUID wie hier: 0052e2fa-fc87-11e7-86e3-08606e445f15

    Danke und viele Grüße
    Silvia

  34. #34
    Contao-Nutzer
    Registriert seit
    05.02.2010.
    Ort
    Hamburg
    Beiträge
    73

    Standard

    Ich kann Dir da leider nicht weiterhelfen.
    @Samson: Du hast PN

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •