Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Excel Exportfelder erweitern

  1. #1
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard Excel Exportfelder erweitern

    Hallo zusammen,

    wir verwenden für Terminbuchungen contao-eventsubscriptions von codefog. Hier kann man auch die angemeldeten Teilnehmer per Excel exportieren (siehe Anhang). Ich würde hier gerne weitere Mitgliederfelder (Straße, PLZ und Ort) in der Excel ausgeben, da ich die aktuell per Hand ergänzen muss. Bei Terminen mit 40+ Teilnehmern ist das VIEL Arbeit....

    Geht das per DCA Config irgendwie? Ich vermute das die Erweiterung phpoffice/phpspreadsheet für den Export der Exceldaten verwendet wird. Oder wende ich mich hier eher per Github an codefog?

    Edit: Anhänge überarbeitet

    VG
    Frank
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Kahmoon (16.04.2021 um 10:41 Uhr)

  2. #2
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Nachtrag: Hier ist sogar ein Hinweis für Entwickler bei phpspreadsheet, den ich aber nicht ganz verstehe https://github.com/codefog/contao-ev.../04-backend.md

    The subscriptions of each event can be exported to the CSV or Excel file. Fore more information on how to alter the exported data please check the Developers section.


    PHP-Code:
    #The event is triggered when the subscriptions are being exported. The argument passed on is the instance of the Codefog\EventsSubscriptions\Event\ExportEvent object.
    $GLOBALS['TL_HOOKS'][\Codefog\EventsSubscriptions\EventDispatcher::EVENT_ON_EXPORT][] = ['MyClass''onExport']; 

    Geändert von Kahmoon (16.04.2021 um 10:50 Uhr)

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Moderation: Thema in das richtige Unterforum verschoben.
    » sponsor me via GitHub or PayPal or Revolut

  4. #4
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Also ich habe zumindest schon mal die Exportfelder im Modul gefunden.

    codefog/contao-events_subscriptions/src/Codefog/EventsSubscriptions/Exporter.php

    Code:
     private function getColumns(array $subscriptions)
        {
            $headerFields = $GLOBALS['TL_LANG']['MSC']['events_subscriptions.exportHeaderFields'];
    
    
            $columns = [
                'event_id'                 => $headerFields['event_id'],
                'event_title'              => $headerFields['event_title'],
                'event_start'              => $headerFields['event_start'],
                'event_end'                => $headerFields['event_end'],
                'subscription_type'        => $headerFields['subscription_type'],
                'subscription_waitingList' => $headerFields['subscription_waitingList'],
                'subscription_firstname'   => $headerFields['subscription_firstname'],
                'subscription_lastname'    => $headerFields['subscription_lastname'],
                'subscription_email'       => $headerFields['subscription_email'],
                'subscription_street'    => $headerFields['subscription_street'],
                'subscription_city'       => $headerFields['subscription_city'],
            ];
    
    
            /** @var ExportAwareInterface $subscription */
            foreach ($subscriptions as $subscription) {
                foreach ($subscription->getExportColumns() as $name => $label) {
                    if (!array_key_exists($name, $columns)) {
                        $columns[$name] = $label;
                    }
                }
            }
    
    
            return $columns;
        }
    Das müsste ich jetzt updatesicher erweitern.

    Edit:
    Vermutlich wirds doch schwerer als gedacht...beim Speichern müssen die FElder wohl auch angegeben werden.


    codefog/contao-events_subscriptions/src/Codefog/EventsSubscriptions/Subscription/MemberSubscription.php
    Code:
        public function getExportRow()
        {
            if (($member = $this->getMemberModel()) === null) {
                return [];
            }
    
    
            return [
                'subscription_firstname' => $member->firstname,
                'subscription_lastname'  => $member->lastname,
                'subscription_email'     => $member->email,
                'subscription_numberOfParticipants' => $this->subscriptionModel->numberOfParticipants,
                'member_id'              => $member->id,
                'member_username'        => $member->username,
                'member_street'        => $member->street,
                'member_city'        => $member->city,
            ];
        }
    Geändert von Kahmoon (16.04.2021 um 11:33 Uhr)

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
  •