====== 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:__ [[projekte:kingcon_register-me.org|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 Das NdU-KingCon für 2021 und 2022 liegt weiterhin auf vs8181. ===== Das Registrierungs-Backend ab Spätherbst 2021 ===== **https://anmeld2.nachtderunternehmen.de/** Am 08.11.2021 ist das Registrierungs-Backend auf den Server vs8181 \\ gezogen. Es liegt im Paket [[projekte:nacht_der_unternehmen_2016|web151]]. Zugangsdaten zu den Datenbanken finden sich in der Datei: ''**/var/www/web151/htdocs/anmeld2/beForms/config/database.php**'' 09.11.2010: \\ Die aktuelle Anwendung (auf vs8181) wird \\ **https://anmeldung.nachtderunternehmen.de/**, die alte (NetPublic-Server) http://anmeldung0.nachtderunternehmen.de/ ===== 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 ===== {{:projekte:nachtderunternehmen:ndu-backend-neue-konfigurieren.doc|}} ===== 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: {{NEWPAGE>projekte:nachtderunternehmen:backend_mit_cake}} Übersicht der Unterprojekte: {{indexmenu>projekte:nachtderunternehmen:backend_mit_cake#2| js doku}}