xls_export in Frontend wie?

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • armin41
    Contao-Nutzer
    • 03.03.2010
    • 201

    #1

    xls_export in Frontend wie?

    Hallo,

    ich möchte gerne, dass meine Mitglieder die Mitglieder per Excel exportieren können. Das ganze soll im Modul memberlisting funktionieren. ich zeige also mit memberlisting die Mitglieder an. Zusätzlich soll es noch was geben, das den Excel-Export startet. Ich habe mir schon die Erweiterungen survey_ce und efgExcel angeschaut. Beide erzeugen einen Export im Backend. Über diese Beispiele bekomme ich auch einen Export im Backend der Mitglieder hin.

    Eine Möglichkeit im Frontend ist ein <a href="excelexport">, also über einen Link, die andere Möglichkeit ist ein Formular mit dem Submit-Button, das ganze im Template memberlist_simple.tpl.

    PHP-Code:
    <div class="header_export">
    <form action="tl_files/eigenes/test2.php" method="post">
    <div class="formbody">
    <div class="submit_container">
    <input type="submit" class="submit" value="Export in Excel" />
    </div>
    </div>
    </form>
    </div> 
    
    Die entsprechenden Funktionen werden auch aufgerufen. Allerdings fehlt der ganze Kontekt (z.B. TL_ROOT). Das ginge mit dem Aufruf:

    PHP-Code:
    <div class="header_export">
    <form action=<?php echo $this->action; ?>" method="post">
    <div class="formbody">
    <div class="submit_container">
    <input type="submit" class="submit" value="Export in Excel" />
    </div>
    </div>
    </form>
    </div>
    Allerdings weiß ich überhaupt nicht, wie ich definieren kann, was die action denn ist.

    Wie rufe ich über den Submit-Button meine export-Funktion oder meine export.php auf?

    Vielen Dank.

    Armin
  • armin41
    Contao-Nutzer
    • 03.03.2010
    • 201

    #2
    Hallo,

    inzwischen gelöst.

    Ich habe mit dem Formulargenerator ein neues Formular generiert, mit einem Submit-Button.

    Dann habe ich mir eine kleines Modul geschrieben, in der ich in der config.php den Hook processFormData abfrage.

    config.php:
    PHP-Code:
    $GLOBALS['TL_HOOKS']['processFormData'][] = array('meineExportKlasse', 'meineexportFunktion'); 
    
    Dann kann ich in meiner Klasse auf den Hook reagieren.

    meine ExportKlasse:
    PHP-Code:
    class meineExportKlasse extends Frontend
    {
    
        protected $blnSave = true;
        
        public function meineexportFunktion($arrPost, $arrForm, $arrFiles)
        {
            if ($arrForm['id'] != FORMULARID)
            {
                return;
            }
    
            $objMember = $this->Database->prepare("SELECT")->execute();
            if ($objMember->numRows)
            {
                include(TL_ROOT . "/plugins/xls_export/xls_export.php");
                $xls = new xlsexport(); ... 
    
    Mit der if-Abfrage wird gewährleistet, dass meine Klasse nur von dem einen Formular aufgerufen wird.

    Kommentar

    Lädt...