Site Tools


Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
Hotfix release available: 2024-02-06b "Kaos". upgrade now! [55.2] (what's this?)
Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04b "Jack Jackrum". upgrade now! [54.2] (what's this?)
projekte:nachtderunternehmen:backend_mit_cake

Backend mit CakePHP (KingCon)

Seit Januar 2023 auf dem FUTRIS-Server srv04

Das KingCon für die Ausstellerprofile und Besucheranmeldungen zieht für 2023 auf den FUTRIS-Server. Hauptgrund: mehr Plattenplatz.

Abonnement: register-me.org
Domain: anmeldung.nachtderunternehmen.de

Aktuell wird nur die NdU in Aachen “bespielt”, die aber zweimal im Jahr (realisiert aktuell als zwei “Städte”).
akenss – im Mai/Juni
akenws – im Oktober/November

<note warning>Das NdU-KingCon für 2021 und 2022 liegt weiterhin auf vs8181.</note>

Das Registrierungs-Backend ab Spätherbst 2021

https://anmeld2.nachtderunternehmen.de/

<note important>Am 08.11.2021 ist das Registrierungs-Backend auf den Server vs8181
gezogen.</note>

Es liegt im Paket web151.

Zugangsdaten zu den Datenbanken finden sich in der Datei: /var/www/web151/htdocs/anmeld2/beForms/config/database.php

<note important>09.11.2010:
Die aktuelle Anwendung (auf vs8181) wird
https://anmeldung.nachtderunternehmen.de/, die alte (NetPublic-Server) http://anmeldung0.nachtderunternehmen.de/</note>

Das Backend

Es gibt nur einen CakePHP-Scripteordner, der von allen NdUs verwendet wird.

Das Backend befindet sich in der anmeldung-Subdomain zu nachtderunternehmen.de. Dort gibt es den Ordner cake mit dem Framework (CakePHP 1.3.xx) und den Application-Ordner beForms.

Die Zuordnung zu den NdU-Standorten erfolgt über einen Named Parameter innerhalb Cakes; genutzt wird das Cake-Routing. (Die Ordner mit Ortsnamen, die dort ebenfalls noch herumliegen sind von 2012!)

Über eine statische HTML-Seite gelangt man zu allen Backends:
http://anmeldung.nachtderunternehmen.de/

Zugänge

Die Datenbanken werden in Plesk in der Domain nachtderunternehmen.de angelegt.
Dadurch sind Namensteile bei DB- und Login-Name bereits fest.

Die Datenbanknamen bestehen nach dem vorgegebenen Teil aus be für backend einem Unterstrich und dem. Ortsnamen.

Die Zugangsdaten zu den Datenbanken finden sich im CakePHP-Konfigurationsverzeichnis. Deshalb werden sie hier nicht wiederholt.

Das Backend ist über die TEMA-Aachen-IP zugangsgeschützt. Die anderen Standorte brauchen ein Login. Deshalb ist es ganz wichtig, beim Einrichten einer neuen NdU-Stadt-Datenbank in der Tabelle users diesen einen Eintrag mit zu kopieren:

Backendlogin (KingCon) - in JEDER Datenbank in der Tabelle users
Username admin Passwort 12ndu9

Checkliste: NdU in ein neues Jahr

  • die Studentendaten exportieren (am Besten aus dem Portal) und nach spezieller Namenskonvention im APP/webroot/xls-vorjahre ablegen. Danach können die Studententabelle und deren Bookings beruhigt zurückgeschnitten (TRUNCATE) werden.
  • auf dem Webserver in der Subdomain anmeldung.nachtderunternehmen.de in APP/config die bootstrap.NDUKÜRZEL.inc.php editieren. Es sind insbesondere: NDU_JAHR, NDU_SOOFT, NDU_DATUM_UPLOAD_BIS.
  • in der Datenbank nachtderunternehmen_be_NDUKÜRZEL die Tabellenwerte in cfg_rechnungs editieren (phpMyAdmin). Es sind insbesondere: config_identkürzel, config_betreff, config_endefrühbucher, eventuell die Paketpreise und Rabatte (Cluster genannt).
  • in ebendieser Datenbank in users alle Einträge außer des admin löschen.
  • sofern diese NdU eine Begrüßungs-E-Mail nutzt, die vom Standard abweicht (z.B. Aachen mit karriere.ac statt NdU-Jobbörse), muss im CakePHP-Verzeichnis APP/views/elements/email/html/NDUKÜRZEL die Datei firma_add_success.ctp angepasst werden.
  • NICHT gemacht werden muss: neue Verzeichnisse unter APP/webroot/NDUKÜRZEL für die Dateiuploads anlegen. Das tut das Backend allein beim ersten Verwenden
  • Studentenanmeldungs-Sachen in: APP/Controller/students_booking_options/incl/
  • Mit der neuen NdU-Website (ab 2016) werden die Liste der Aussteller über eine UserFunction im TYPO-Script eingebunden (im TYPO3 Listansicht, dann +ext-Template).
    Die php-Datei liegt im /typo3conf/ext/bl_companys/Classes auf dem neuen Cubos-Server

So war es auf dem alten NdU-Webserver:

  • Nachdem einige Unternehmen im neuen Jahr angelegt wurden, muss auf der Webseite des jeweiligen Standorts die Liste der “Teilnehmenden Unternehmen” bzw. “Aussteller” auf das neue Jahr umgeleitet werden. - Die Seite findet man im TYPO3-Seitenbaum. In der Regel muss die Jahreszahl im Titel geändert werden sowie die Jahreszahl im PHP-Script auf den Seiten “A-Z” und “logos”. Wenn man nicht einfach die bestehenden Seiten ändert, sondern kopiert, dann muss in den beiden neuen Seiten “A-Z” und “logos” noch der Verweis auf die jeweils andere Seite angepasst werde, da dieses A-HREF auf die Page-ID verlinkt.
  • Aktuell nur bei Stuttgart auf der Webseite, aber prinzipiell überall denkbar, gibt es eine Liste der bisherigen Teilnehmer. Da muss dann die Jahreszahl im PHP-Script auch um eins hochgesetzt werden.

Zu beachten: Einge NdUs wurden seit mehrerern Jahren nicht mehr durchgeführt. - Deshalb sollte vor einer Reaktivierung überprüft werden, ob in der Datenbank und in den CakePHP-config-Dateien (die bootstrap.NDU.inc.php) alle aktuell verwendeten Felder/Konstanten definiert sind.

Vorgehensweise beim Neuanlegen einer NdU

Jede NdU existiert nur als Konfiguration, es werden keine Cake-Scripte kopiert.

Für jede NdU gibt es ein Ortsnamen-Kürzel, das aus Kleinbuchstaben ohne Umlaute und Sonderzeichen besteht. Momentan wird versucht, das Kürzel auf einheitlich 6 Zeichen festzulegen, was aber nicht notwendig ist.

Über das Namenskürzel wird in der Cake-Configdatei APP/config/database.php zugeordnet, welche Datenbank genutzt wird. In dieser Datenbank werden die teilnehmenden Unternehmen und Absolventen verwaltet. Diese Datenbank wird über die Jahre fortgeschrieben.
In der Datenbank gibt es die Tabelle cfg_rechnungs, in der Preise und Rahmendaten für die Rechnung liegen. Das ist Teil 1 der Konfiguration. Diese Tabelle muss jedes Jahr mit neuem Inhalt versehen werden. (Überschreiben!)

Beim Anlegen einer neuen NdU erzeugt man also als erstes die Datenbank und trägt die Zugangsdaten am Besten gleich in APP/config/database.php ein.
Dann erzeugt man sich die leeren Datenbanktabellen (z.B. Aachen exportieren und in die gerade generierte Datenbank importieren). In der Tabelle users sollte der Benutzer admin enthalten sein, wenn auch Nichtaachener TEMAner auf das Backend zugreifen können sollen.

Der 2. Teil der Konfiguration besteht aus einer Include-Datei im Order APP/config. Diese wird durch die Cake-Configdatei bootstrap.php eingebunden. In dieser Datei stehen vor allem Werte für die Begrüßungs- u.a. Emails. Für die leichtere Erkennbarkeit und vor allem Zuordenbarkeit tragen die Include-Dateien das NdU-Ortskürzel im Namen.

Querverbindungen zu TYPO3: In der Cake-Configdatei werden Pfadteile und Page-IDs verwendet, die vorher beim Anlegen der neuen NdU im TYPO3 entstanden sind. Umgekehrt verlinken der interne Bereich der Unternehmen, die Ausstellerliste und die Studentenanmeldungen auf CakePHP-URLs der neuen NdU.

weitere Konfigurationen

Werte, die für alle NdUs gleichermaßen gelten, sind in der CakePHP-Struktur so angeordnet, dass sie möglichst nur einmal definiert werden müssen.
Die Liste der Branchen, z.B. ist in der Datei APP/views/firmas/edit_profil.branchenliste.php hinterlegt; die Email-Adresse aller NdU-Grafik-Kommentare im UploadsController. Usw.

Checkliste: Anlegen einer neuen NdU

Böse Falle

Das CakePHP bei der NdU ist so konfiguriert, dass es die Tabellenstruktur (also die Models) cached.
Das hat den bösen Effekt zur Folge, dass Änderungen an der Datenbanktabelle (z.B.: ein neues Feld wurde angelegt) vom NdU-Backend ignoriert werden. — Richtig hartnäckig ignoriert!!!, sodass man als Programmierer schon an sich zu zweifeln beginnt.

Deshalb: Nach Änderungen an der Datenstruktur - Cache löschen!!!
Das geschieht im Ordner APP/tmp/cache/models - da einfach alles weglöschen.

Da alle NdUs den selben cake-APP-Ordner nutzen und folglich alle auf die selbe Model-cache-Beschreibung zugreifen, muss die Tabellenstruktur bei allen NdUs identisch sein, weil sonst die find()-Funktionen bei den NdUs ins leere Laufen, bei denen die Tabellenstruktur abweicht.

Deshalb: Tabellenstrukturänderungen zügig an allen Datenbanken hintereinander durchziehen.

Unterprojekte

Neues Projekt anlegen: projekte:nachtderunternehmen:backend_mit_cake

Übersicht der Unterprojekte:

js doku

projekte/nachtderunternehmen/backend_mit_cake.txt · Last modified: 2024/01/05 13:07 by 127.0.0.1