src/Controller/MembershipController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\MembershipCancellationType;
  4. use phpDocumentor\Reflection\Types\Object_;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use App\Form\MembershipRegisterType;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Mime\Email;
  10. use Symfony\Component\Mailer\MailerInterface;
  11. /**
  12.  * @Route("/mitgliedschaft", name="membership_")
  13.  */
  14. class MembershipController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("/", name="index")
  18.      */
  19.     public function index(Request $requestMailerInterface $mailer)
  20.     {
  21.         /* Form register */
  22.         $formRegister $this->createForm(MembershipRegisterType::class);
  23.         $formRegister->handleRequest($request);
  24.         if($formRegister->isSubmitted() && $formRegister->isValid()) {
  25.             $registerFormData $formRegister->getData();
  26.             /* COR employee */
  27.             if ($registerFormData['employeeOfCorCompany'] === 1) {
  28.                 $employeeOfCorCompany 'Ja';
  29.             } else {
  30.                 $employeeOfCorCompany 'Nein';
  31.             }
  32.             /* Minors
  33.             if ($registerFormData['minors'] === 1) {
  34.                 $minors = 'Ja';
  35.             } else {
  36.                 $minors = 'Nein';
  37.             } */
  38.             $registerFormMessageClub = (new Email())
  39.                 ->from('noreply@ctc-rheda.de')
  40.                 ->to('c-ctc@studionuca.com')
  41.                 ->bcc('presse@ctc-rheda.de')
  42.                 ->subject('Registrierung Mitgliedschaft')
  43.                 ->text(
  44.                     'Es ist eine neue Registrierung zur Mitgliedschaft durch www.ctc-rheda.de/mitgliedschaft/ eingegangen.'.\PHP_EOL.\PHP_EOL.
  45.                     'Absender: '.$registerFormData['email'].\PHP_EOL.\PHP_EOL.
  46.                     'Stammdaten'.\PHP_EOL.
  47.                     'Vorname: '.$registerFormData['firstName'].\PHP_EOL.
  48.                     'Nachname: '.$registerFormData['lastName'].\PHP_EOL.
  49.                     'Telefon: '.$registerFormData['phoneNumber'].\PHP_EOL.
  50.                     'Geburtstag: '.$registerFormData['birthDate']->format('d.m.Y').\PHP_EOL.
  51.                     /*'Minderjährig: '.$minors.\PHP_EOL.\PHP_EOL.*/
  52.                     'Anschrift'.\PHP_EOL.
  53.                     'Straße: '.$registerFormData['street'].\PHP_EOL.
  54.                     'PLZ: '.$registerFormData['zipCode'].\PHP_EOL.
  55.                     'Stadt: '.$registerFormData['city'].\PHP_EOL.\PHP_EOL.
  56.                     'Mitgliedschaftsinformationen'.\PHP_EOL.
  57.                     'Mitgliedschaft: '.$registerFormData['membership'].\PHP_EOL.
  58.                     'COR Mitarbeiter: '.$employeeOfCorCompany.\PHP_EOL.
  59.                     'Team Matches: '.$registerFormData['teamMatches'].\PHP_EOL.
  60.                     'Spielerpass: '.$registerFormData['playerPass'].\PHP_EOL.\PHP_EOL.
  61.                     'Zahlungsinformationen'.\PHP_EOL.
  62.                     'Vorname: '.$registerFormData['paymentFirstName'].\PHP_EOL.
  63.                     'Nachname: '.$registerFormData['paymentLastName'].\PHP_EOL.
  64.                     'IBAN: '.$registerFormData['paymentIban'].\PHP_EOL.
  65.                     'Sonstiges'.\PHP_EOL.
  66.                     'Anmerkungen: '.$registerFormData['notes'].\PHP_EOL
  67.                 );
  68.             $mailer->send($registerFormMessageClub);
  69.             $registerFormMessageResponse = (new Email())
  70.                 ->from('noreply@ctc-rheda.de')
  71.                 ->to($registerFormData['email'])
  72.                 ->subject('Registrierung Mitgliedschaft')
  73.                 ->html(
  74.                     'Liebe/r '.$registerFormData['firstName'].',<br><br>'.
  75.                     'wir freuen uns sehr, dich als neues Mitglied im Cor Tennisclub Rheda begrüßen zu dürfen!<br><br>'.
  76.                     'Über unsere Website <a href="https://www.ctc-rheda.de">CTC-Rheda.de</a> kannst du dich im Buchungssystem eTennis registrieren und anschließend Platzbuchungen für die Sommersaison vornehmen.<br><br>'.
  77.                     'Damit du keine wichtigen Informationen rund um den Verein verpasst, tritt gerne unserer WhatsApp-Gruppe „CTC-News" über folgenden Link bei:<br>'.
  78.                     '👉 <a href="https://chat.whatsapp.com/DmAKAa7AzTrBFsoNmWRyZX">https://chat.whatsapp.com/DmAKAa7AzTrBFsoNmWRyZX</a><br><br>'.
  79.                     'Der Mitgliedsbeitrag für das Jahr 2025 wird halbjährlich von dem bei der Registrierung angegebenen Konto eingezogen. Wir bitten dich, die vom Cor Tennisclub Rheda e.V. (Gläubiger-ID: DE84CTC00001045281) veranlasste Lastschrift einzulösen.<br><br>'.
  80.                     'NEU: Wir möchten die Digitalisierung im Verein weiter vorantreiben und gleichzeitig einen Beitrag zum Umweltschutz leisten. Daher werden wir künftig auf postalische Schreiben verzichten und wichtige Mitteilungen ausschließlich per E-Mail versenden.<br><br>'.
  81.                     'Solltest du eine „Auszubildende / Studenten"-Mitgliedschaft abgeschlossen haben, bitten wir dich, uns noch einen entsprechenden Nachweis per E-Mail zuzusenden, da sonst der Beitrag nicht aktiv wird.<br><br>'.
  82.                     'Wir wünschen dir viel sportliches und geselliges Vergnügen im Cor Tennisclub Rheda!<br><br>'.
  83.                     'Vielen Dank!<br><br>'.
  84.                     'Mit sportlichen Grüßen<br>'.
  85.                     'Cor TC Rheda e.V.<br>'.
  86.                     'René Klindt (1. Vorsitzender)'
  87.                 );
  88.             $mailer->send($registerFormMessageResponse);
  89.             $successType 'anmeldung-erfolgreich';
  90.             return $this->redirectToRoute('membership_success', array('successType' => $successType));
  91.         }
  92.         /* Form cancellation */
  93.         $formCancellation $this->createForm(MembershipCancellationType::class);
  94.         $formCancellation->handleRequest($request);
  95.         if($formCancellation->isSubmitted() && $formCancellation->isValid()) {
  96.             $cancellationFormData $formCancellation->getData();
  97.             $cancellationFormMessageClub = (new Email())
  98.                 ->from('noreply@ctc-rheda.de')
  99.                 ->to('c-ctc@studionuca.com')
  100.                 ->bcc('presse@ctc-rheda.de')
  101.                 ->subject('Abmeldung Mitgliedschaft')
  102.                 ->text(
  103.                     'Es ist eine neue Abmeldung zur Mitgliedschaft durch www.ctc-rheda.de/mitgliedschaft/ eingegangen.'.\PHP_EOL.\PHP_EOL.
  104.                     'Absender: '.$cancellationFormData['email'].\PHP_EOL.\PHP_EOL.
  105.                     'Stammdaten'.\PHP_EOL.
  106.                     'Vorname: '.$cancellationFormData['firstName'].\PHP_EOL.
  107.                     'Nachname: '.$cancellationFormData['lastName'].\PHP_EOL.
  108.                     'Geburtstag: '.$cancellationFormData['birthDate']->format('d.m.Y').\PHP_EOL.\PHP_EOL.
  109.                     'Mitgliedschaftsinformationen'.\PHP_EOL.
  110.                     'Grund: '.$cancellationFormData['reason'].\PHP_EOL.\PHP_EOL.
  111.                     'Sonstiges'.\PHP_EOL.
  112.                     'Anmerkungen: '.$cancellationFormData['notes'].\PHP_EOL
  113.                 );
  114.             $mailer->send($cancellationFormMessageClub);
  115.             $cancellationFormMessageResponse = (new Email())
  116.                 ->from('noreply@ctc-rheda.de')
  117.                 ->to($cancellationFormData['email'])
  118.                 ->subject('Kündigung Mitgliedschaft')
  119.                 ->html(
  120.                     'Liebe/r '.$cancellationFormData['firstName'].',<br><br>'.
  121.                     'die Kündigung der Mitgliedschaft haben wir mit Bedauern zur Kenntnis genommen.<br><br>'.
  122.                     'Die Mitgliedschaft endet satzungsgemäß am 31.12.'.date('Y').'.<br><br>'.
  123.                     'Die uns gegebene Beitrags-Einzugsermächtigung für die Mitgliedschaft erlischt mit dem zuvor genannten Datum.'.'<br><br>'.
  124.                     'Mit sportlichen Grüßen<br>'.
  125.                     'Cor TC Rheda e.V.<br>'.
  126.                     'René Klindt (1. Vorsitzender)'
  127.                 );
  128.             $mailer->send($cancellationFormMessageResponse);
  129.             $this->addFlash('success''Your message has been sent');
  130.             $successType 'abmeldung-erfolgreich';
  131.             return $this->redirectToRoute('membership_success', array('successType' => $successType));
  132.         }
  133.         /* Get meta from api */
  134.         $metaJson null;
  135.         try {
  136.             $metaJsonPath = @file_get_contents('https://api.ctc-rheda.de/api/singletons/get/membership?token=863f1ccdb97de3b924e07b600ce0f5');
  137.             if ($metaJsonPath !== false) {
  138.                 $metaJson json_decode($metaJsonPathtrue);
  139.             }
  140.         } catch (\Exception $e) {
  141.             // Log the error if needed
  142.             error_log('API Error in MembershipController: ' $e->getMessage());
  143.         }
  144.         
  145.         // Fallback if API is not available
  146.         if ($metaJson === null) {
  147.             $metaJson = [
  148.                 'title' => 'Mitgliedschaft',
  149.                 'description' => 'Du möchtest Mitglied im CTC werden? Kein Problem. Hier findest Du alle notwendigen Informationen zur Mitgliedschaft.',
  150.                 'keywords' => 'Tennis, Mitgliedschaft, CTC, Rheda'
  151.             ];
  152.         }
  153.         return $this->render('pages/membership.html.twig', [
  154.             'page' => array(
  155.                 'title' => 'Mitgliedschaft',
  156.                 'description' => 'Du möchtest Mitglied im CTC werden? Kein Problem. Hier findest Du alle notwendigen Informationen zur Mitgliedschaft.',
  157.                 'meta' => $metaJson
  158.             ),
  159.             'registrationForm' => $formRegister->createView(),
  160.             'cancellationForm' => $formCancellation->createView()
  161.         ]);
  162.     }
  163.     /**
  164.      * @Route("/{successType}/", name="success")
  165.      */
  166.     public function membershipSuccess($successType)
  167.     {
  168. //        $successType = $this->get($successType);
  169.         return $this->render('pages/membership-form-success.html.twig', [
  170.             'successType' => $successType,
  171.             'page' => array(
  172.                 'title' => 'Formular abgesendet',
  173.                 'description' => 'Deine Daten wurden erfolgreich übermittelt.'
  174.             )
  175.         ]);
  176.     }
  177. }