>
/!\ Diese Seite befindet sich noch im Aufbau /!\ <
> /!\ Die Inhalte hier wurden noch nicht korrekturgelesen. Nicht einfach blind der Dokumentation folgen. /!\
= Drupal bei PING =
Eine neue Homepage auf der Basis des CMS Drupal ist (nach langem, zähen Ringen) auf http://web.ping.de/ entstanden. Die Implementation naht nunmehr ihrer Vollendung, sobald letzte Kleinigkeiten fertiggestellt und die Inhalte übertragen sind soll das neue CMS die Startseite http://www.ping.de/ ersetzen.
== Dokumentation ==
Die Dokumentation des Systems ist im Drupal selbst abgelegt, die entsprechenden Seiten/Artikel werden aber nicht veröffentlicht. Nach erfolgreicher Anmeldung als Redakteur oder Admin ( genaue Rollen benennen) können diese eingesehen werden.
== Mitgliederaccounts ==
Es gibt einen Mechanismus, um Mitgliederaccounts automatisch mit der PING-Datenbank zu synchronisieren. Dazu wird auf {{{lilly}}} eine CSV-Datei erstellt und auf {{{web.ping.de}}} kopiert. Hier kann diese entweder manuell oder automatisch sychronisiert werden, dieser Vorgang ist im Drupal beschrieben (s.o.).
Hier folgen nun noch einige technische Detail-Informationen zu der Implementation der Synchronisation. Für die Benutzung des CMS ist es nicht notwendig, diesen Teil zu kennen.
* Die Quell-Daten für die CSV-Datei finden sich auf {{{lilly}}} in {{{/etc/httpd/drupal/}}}
* Die CSV-Datei wird als {{{/var/www/intern/user-transfer/accounts.csv}}} abgelegt.
* Das Passwort in der CSV-Datei ist ein MD5-Hash ohne Salt.
* Der Import wird von dem PHP-Skript {{{/var/www/drupal7/sites/all/themes/ping/inc/import.inc.php}}} durchgeführt.
* Es gibt aktuell im Drupal die folgenden Rollen, ein Benutzer kann dabei mehr als eine Rolle haben:
* administrator
* Authentifizierter Benutzer
* Gast
* Redakteur
* Neben den regulären Account-Daten werden auch noch drei {{{data fields}}} angelegt:
* user_id
* user_vorname
* user_nachname
=== TODO ===
* Es muss noch geklärt werden, wie Prima-User integriert werden, bzw. wie mit doppelten Sitenames umgegangen werden soll.
* Aktuell werden Mitglieder, die den Verein verlassen, nicht gelöscht sondern inaktiv gesetzt. Sollen diese gelöscht werden muss noch ein entsprechender Mechanismus implementiert werden.<
>Insbesondere müssen die oben erwähnten {{{data fields}}} gelöscht werden.
* Aktuell gibt es im Import-Skript zwei besondere Ausnahmen:
* User-ID 0 wird komplett ignoriert und niemals modifiziert. Diese User-ID stellt den Drupal-Administrator dar.
* User-ID 18 wird explizit übersprungen, dieses ist aktuell ein generischer Redakteur-Account mit dem Usernamen {{{redaktion}}}
* Der Import-Mechanismus muss noch derart angepasst werden, daß weitere, manuell vergebene Redakteur- bzw. Administrator-Accounts ebenfalls übersprungen werden. Die Entscheidung könnte über die im Drupal dem entsprechenden Account zugeordnete Rolle oder über die vom Import-Skript speziell generierten Dummy-email-Adressen geschehen.
* --(Es muss noch eine Möglichkeit eingebaut werden, damit sich ein angemeldeter Benutzer wieder abmelden kann. Z.B. könnte ein "Abmelden"-Link im Menu "Interner Bereich" erstellt werden.)-- Ein Abmelden Link ({{{user/logout}}}) wurde im Menu "Interner Bereich" ergänzt.
== Accounts ==
=== Drupal ===
* Anmelden unter: http://web.ping.de/user
* Benutzer: PINGone
=== Piwik (Besucher-Statistik) ===
* Anmelden unter: http://web.ping.de/piwik
* Benutzer: PINGadmin
=== MySQLDumper (zum Sichern/Wiederherstellen der Datenbank) ===
* Anmelden unter: http://web.ping.de/msd/
* Benutzer: pingadmin
== Updates ==
Beim Login als Administrator zeigt Drupal eine Benachrichtigung an, wenn Updates existieren.
=== Vorarbeiten ===
Vor jedem Update (gleich ob Modul, Theme oder Core) sollte die Datenbank gesichert werden. Dies kann direkt auf dem Server mittels {{{mysqldump}}} geschehen oder mit dem HTML-basierten MySQLDumper.<
> Hier wird die Sicherung mittels MySQLDumper beschrieben.
1. Login auf http://web.ping.de/msd/
1. "Backup" in der linken Navigation wählen
1. Einen Kommentar vergeben
1. Den Knopf "Neues Backup starten" drücken
Während das Backup läuft wird der Fortschritt angezeigt.
=== Module/Themes ===
1. Über die Links auf der Drupal-Update-Übersicht die Neuigkeiten prüfen.
1. Auf der Neuigkeiten-Seite gibt es auch die Download-Links (hier die tar.gz-Version nehmen) /!\ NICHT über "Aktualisierungen herunterladen" auf der Dupal-Update-Übersichtsseite downloaden
1. Jedes Paket lokal öffnen und die Dokumentation in den Dateien README.txt, INSTALL.txt und UPGRADE.txt durchsehen
1. Notwendige Abhängigkeiten installieren
1. Die Installationspakete auf den Server kopieren.
1. Drupal in den Wartungsmodus versetzen (unter: /admin/config/development/maintenance)
1. In {{{/var/www/drupal7/sites/all/modules/contrib}}} das gesamte Verzeichnis des zu aktualisierenden Moduls nach {{{/var/www/_update_modules}}} kopieren
1. In {{{/var/www/drupal7/sites/all/modules/contrib}}} die Verzeichnisse der zu aktualisierenden Module löschen. /!\ Auf keinen Fall die Verzeichnisse einfach umbenennen.
1. Im selben Verzeichnis die Aktualisierungsdateien des Moduls auspacken
1. http://web.ping.de/update.php aufrufen
1. Den Dialogen folgen
1. Fehlermeldungen prüfen und notwendige Schritte ausführen
1. /!\ Nur nach Update von Chatblock: {{{cd /var/www/drupal7}}} /!\ Hier in das richtige Verzeichnis wechseln
1. /!\ Nur nach Update von Chatblock: {{{sudo drufixperms.sh}}}
1. Ggfs. weitere Module nach obigen Schema updaten.
1. Wartungsmodus deaktivieren
1. Temporär gesicherte Verzeichnisse in {{{/var/www/_update_moduels}}} löschen
=== Module manuell deaktivieren ===
1. Module können manuell nur in der Datenbank deaktiviert bzw. aktivert werden.
1. Vor dem Aktiveren/Deaktivieren von Modulen die Datenbank wie oben beschrieben sichern.
1. Im MySQLDumper "SQL-Browser" in der linken Navigationsleiste wählen.
1. Die notwendigen SQL-Befehle stehen unter https://www.drupal.org/node/157632
=== Core ===
Das Drupal Kernsystem wird Core genannt.
1. Über die Links auf der Drupal-Update-Übersicht die Neuigkeiten prüfen.
1. Auf der Neuigkeiten-Seite gibt es auch die Download-Links (hier die tar.gz-Version nehmen)
1. Die Installationspakete auf den Server kopieren.
1. Drupal in den Wartungsmodus versetzen (unter: /admin/config/development/maintenance).
1. {{{cd /var/www}}}
1. {{{tar xzf /path/to/drupal-7.version.tar.gz}}}
1. {{{cp -Rf drupal7/sites drupal-7.version/}}}
1. {{{cp -Rf drupal7/dateien drupal-7.version/}}}
1. {{{cp -Rf drupal7/msd drupal-7.version/}}}
1. {{{cp -Rf drupal7/piwik drupal-7.version/}}}
1. {{{cd drupal-7.version}}} /!\ Hier in das richtige Verzeichnis wechseln, das NEUE Drupalverzeichnis
1. {{{sudo drufixperms.sh}}}
1. {{{cp drupal7/js.php drupal-7.version/}}}
1. {{{cp drupal7/chatblock.php drupal-7.version/}}}
1. Alte und neue Version der Dateien {{{robots.txt}}} und {{{.htaccess}}} vergleichen und notwendige Anpassungen vornehmen. /!\ Es gibt bei PING lokale Anpassungen an der Datei {{{.htaccess}}}
1. {{{mv drupal7 drupal7-BAK}}}
1. {{{mv drupal-7.version drupal7}}}
1. http://web.ping.de/update.php aufrufen
1. Den Dialogen folgen
1. Fehlermeldungen prüfen und notwendige Schritte ausführen
1. Wartungsmodus deaktivieren
=== Sicherung der notwendigen Rechteänderungen als reine Information ===
1. {{{chown -R www-data:www-data drupal-7.version/sites}}}
1. {{{chown -R www-data:www-data drupal-7.version/dateien}}}
1. {{{chown -R www-data:www-data drupal-7.version/piwik/tmp/climulti}}}
1. {{{chown -R www-data:www-data drupal-7.version/piwik/tmp/latest}}}
1. {{{chown -R www-data:www-data drupal-7.version/piwik/tmp/sessions}}}
1. {{{chown www-data:www-data drupal-7.version/piwik/tmp/index.htm}}}
1. {{{chown www-data:www-data drupal-7.version/piwik/tmp/index.php}}}
== FAQ ==
Hier nun eine Sammlung von Fragen, die dem Webdesigner, der die Drupal-Implementierung umgesetzt hat, gestellt wurden, sowie dessen Antworten.
=== Umbenennung web -> www ===
{{{
>> - Was muss innerhalb des Drupal getan werden, wenn die Seite von
>> web.ping.de auf www.ping.de umgestellt wird?
>
> Da muss eigentlich gar nichts gemacht werden, solange die Dateien nicht
> auch noch auf dem Server verschoben werden. Sollte es bei der Umstellung
> Probleme geben, können Sie mich aber noch einmal fragen.
}}}
=== URL für die Webcam ===
{{{
>> - Lässt sich die URL für die Webcam ändern und wenn ja wo?
>
> Die Ersetzung des Kurzcodes ist selbst programmiert. Zuständig ist die
> Datei /sites/all/themes/ping/template.php - Zeile 55.
}}}
=== Backup/Restore ===
{{{
>> - Backups sind dokumentiert, doch wie muss vorgegangen werden, um diese
>> ganz oder teilweise wiederherzustellen?
>
> Der Admin hat Zugriff auf die Backups. Es gibt eine Funktion, um diese
> wieder herzustellen. Ich habe die Funktion des Moduls aber noch nie
> selbst benutzt. Ich nutze das Tool MySQLDumper. Das hätte ich nun
> gelöscht, aber ich belasse es mal auf dem Server und gebe auch dort den
> Zugang weiter.
> Das Tool hat nichts mit Drupal zu tun.
> Siehe:
}}}
=== (Sicherheits-)Updates einspielen ===
{{{
>> - Wie werden Sicherheitsupdates korrekt und ohne Datenverlust
>> eingespielt?
>
> Das ist hier erklärt:
> Bitte dabei immer und in jedem Fall zuerst die Datenbank sichern. Mit dem
> Drupal-Modul oder mit MySQLDumper.
}}}
== Infrastruktur-Module ==
Neben Drupal (CMS) gibt es auf dem Server auch eine Installation von {{{Piwik}}} (Statistiken) und {{{MySQLDumper}}} (Web-Interface zur Datenbank-Pflege).
=== Piwik ===
Es scheinen derzeit keine Statistiken gesammelt zu werden, die entsprechende Funktion scheint im Drupal nicht aktiv zu sein.
==== Piwik Updates ====
1. Sollte eine altes Backup-Verzeichnis existieren (piwik-BAK), dieses löschen
1. {{{cd /var/www/drupal7/piwik/config}}}
1. {{{cp config.ini.php config.ini.php-`date -I`}}}
1. {{{cd /var/www/drupal7}}}
1. {{{wget https://builds.piwik.org/piwik.zip}}}
1. {{{cp -a piwik piwik-BAK}}}
1. {{{unzip -o piwik.zip}}}
1. {{{rm How\ to\ install\ Matomo.html piwik.zip}}}
1. /!\ Prüfen, ob im richtige Verzeichnis: /var/www/drupal7
1. {{{sudo drufixperms.sh}}}
1. {{{/var/www/drupal7/piwik/console core:update}}}
==== Piwik Cache leeren ====
Unter Umständen kann es sein, daß statt der normalen Seite eine Fehlermeldung angezeigt wird. Dann kann es helfen, den Cache zu leeren:
* {{{/var/www/drupal7/piwik/console core:clear-caches}}}
Links:
* https://www.drupal.org/project/piwik
* https://piwik.org/docs/update/
=== MySQLDumper ===
{{{
Hier gibt es zur Zeit nichts zu sehen.
}}}
== Reverse Engineering ==
=== Benutzerdaten-Dialog ===
Benutzer (inklusive Administratoren und lokale, nicht durch den Import erzeugte Benutzer) können ihre Benutzerdaten nicht ändern. Dafür verantwortlich ist das Modul {{{pingmini}}}. Dieses ist in {{{/var/www/drupal7/sites/all/modules/custom/pingmini}}} zu finden.
Das Modul implementiert aktuell nur die Funktion {{{pingmini_form_alter}}} welche nur für das Formular {{{user_profile_form}}} aktiv wird und hier einige Felder inklusive des Speichern-Buttons entfernt. Hier wird auch der Hinweis eingefügt, die Daten über die PING-Benutzerverwaltung zu ändern.