Wie wir bei der workin media mobil arbeiten

Wie wir bei der workin media mobil arbeiten

Ein großer Vorteil als Webentwickler ist es ja, eigentlich fast überall ganz gut arbeiten zu können. Ein Nachteil ist, dass das auch Kunden wissen. Deshalb haben wir viel Hirnzschmalz aufgewendet, um einen so mobilen Workflow wie möglich aufbauen zu können. Und zwar via Smartphone & Tablet.

Ziel ist es, dringende Aufgaben on the fly erledigen zu können. Das können sein:

  • Wichtige Unterlagen auf unserer NAS anzeigen/verwenden
  • Zugriff auf Buchhaltungsprogramm
  • Zugriff auf Helpdesk
  • Zugriff auf Wordpress-Backends.
  • FTP-Inhalte anzeigen/verändern
  • Via SSH auf unsere Server zugreifen

Alle Prozesse müssen sich im besten Fall selbstständig synchronisieren, damit Zugangsdaten und Passwörter aktuell bleiben. Und natürlich müssen alle Prozesse auf den mobilen Geräten so gut wie möglich vor Fremdzugriff geschützt sein.

Via VPN auf die NAS

Da wir auf unserer Synology-NAS unsere lokalen Backups und Dokumente liegen haben, können wir via VPN-Verbindung schon einen Großteil wichtiger Dokumente aufrufen. Auch laufen dort unsere ersten Testseiten, die aus Sicherheitsgründen nicht aus dem Netz abrufbar sind; via VPN schon. Um das mit der NAS realisieren zu können, haben wir dort einen Webserver, DNS-Server, dnsmasq und VPN-Server am Start.

Buchhaltung in der Cloud

Die Buchhaltung haben wir gleich ganz in die Cloud gelegt und mit http://www.lexoffice.de einen ganz zuverlässigen Partner gewonnen. Der Vorteil liegt auf der Hand: Jeder hat immer die neueste Zahlen, Daten und Fakten. Überall, wo es Internet gibt.

Wir müssen nur eine Adressdatenbank pflegen, also theoretisch, und haben einen Platz, an dem unsere Rechnungen liegen. Das ist großartig. Außerdem wird Lexoffice regelmäßig mit neuen (und praktischen) Funktionen und Erweiterungen ausgestattet. Nachteile gibt es natürlich auch: Es ist ein Webdienst, der manchmal auch gewartet werden muss und genau dann keinen Zugriff gewährt, wenn man eine wichtige Rechnung schreiben muss. Kommt seltenst vor. Aber wenn, dann ärgert's.

Via App Support-Tickets verwalten

Wie wir https://workin-media.hnz.io/blog/wie-wir-fuer-uns-die-e-mail-entstauben-um-noch-effektiver-arbeiten-zu-koennen/ schon geschrieben haben, nutzen wir den tollen Dienst Freshdesk um unsere Kundenanfragen zu verwalten. Eine https://itunes.apple.com/de/app/freshdesk-customer-support/id849713306?mt=8 pusht neue Supportanfragen direkt aufs Smartphone-Display. Entweder kann man dann direkt antworten oder die Anfrage anderen Mitarbeitern zuordnen. Äußerst praktisch. Im übrigen: Auch viel praktischer als E-Mail, weil bei der Menge, die bei uns im Postfach aufschlägt, gerne etwas überlesen werden kann, wenn man nur mit dem Handy unterwegs ist.

Immer die volle Übersicht über unsere Seiten

Neben den Servern monitoren wir auch WordPress-Seiten, ob sie richtig funktionieren. Denn manchmal verursacht ein Plugin einen Fehler, der WordPress zum Absturz bringt aber der Server denkt weiterhin, dass alles in Ordnung ist. Deshalb monitoren wir beides, den Server und die einzelnen Installationen. Sollte etwas schief laufen, also WordPress ausfallen oder die Seite plötzlich von Nutzern überrannt werden, werden wir per E-Mail und SMS informiert und können auch via Smartphone schnell reagieren, Backups einspielen oder Kapazitäten verändern.

Auf die FTP-Server Zugriff haben

Wir nutzen hier für Smartphone & Tablets https://panic.com/transmit-ios/. Die App ist nicht perfekt, was aber eher an Apple als am Entwicklerstudio Panic liegt. Das Tolle: Man kann den Zugang zur App via Passcode und Fingerabdruck schützen und auch https://library.panic.com/transmit-ios/tios-favorite-import/. Händisch. https://www.panic.com/blog/transmit-ios-1-1-1/.

Gleichzeitig nutzen wir auch Coda vom gleichen Hersteller sowohl am Computer als auch mobil. In Coda laufen unsere aktuellen Projekte, die auch gleichzeitig über git versioniert werden. Über Transmit auch einfach nur Backup-FTPs.

Via SSH auf den Server zugreifen

Hier batteln sich im Apple App Store zwei Apps. https://itunes.apple.com/us/app/cathode/id656982811?mt=8 und https://itunes.apple.com/de/app/prompt-2/id917437289?mt=8. Prompt 2 stammt von Panic und ist deshalb unsere erste Wahl gewesen. Warum sich Prompt 2 allerdings nicht via "Panic Sync" (die iCloud-Alternative des Herstellers) die SSH-Daten aus Coda holt, ist mir ein Rätsel. Hier müsssen wir die Daten und Zertifikate manuell hinzufügen. Gesynct werden dann nur die mobilen Geräte; per Passcode und Fingerabdruck werden die Daten wie bei Transmit iOS zusätzlich gesichert.

Ein SSH-Zugang für unterwegs ist übrigens wichtiger, als man denken würde. Denn manchmal passieren auf Servern komische Dinge. Erst vor kurzem hat es beispielsweise eine MySQL-Tabelle einer WordPress-Installation gecrasht, in der die Menüs gespeichert waren. Das echt riesige Menü auf der Seite wurde nicht mehr dargestellt, und das nach Feierabend! Ich konnte mich dann mit dem Handy bequem vom Sofa aus auf dem Server einloggen, die gecrashten Tabellen reparieren, MySQL neustarten, mich freuen, dass es funktioniert, mir einen Reminder für den nächsten Tag schreiben und dann die neueste Doctor-Who-Folge weiterschauen.

Fazit

Noch sind wir noch nicht an dem Punkt angekommen, an dem alle Daten geschützt von überall mit möglichst vielen Endgeräten abgerufen werden können. Klar, mit dem Laptop ist das möglich, aber den haben wir nicht immer dabei. In den letzten Jahren hat sich schon viel für Smartphones und Tablets getan, gerade im Bereich Servermanagement. Aber so richtig fancy, wie ich mir das als Perfektionist wünsche, klappt das leider noch nicht.

Bildnachweise: https://picjumbo.com/man-holding-iphone-in-his-car/

Verlinkte Listen in Wordpress automatisch generieren

Verlinkte Listen in Wordpress automatisch generieren

Manchmal benötigt man in Wordpress Strukturen, die spezieller und kleinteiliger sind, als die üblichen Kategorien/Tag-Zuweisungen. Mit ein paar Umwegen und dem Plugin ACF ist es auch Wordpress möglich, contentabhängige Listen zu generieren.

Wenn ich mir kleinere und moderne Content-Management-Systeme wie beispielsweise http://de.processwire.com anschaue, bin ich schon etwas neidisch:

Bei Processwire gibt es keine vorgefertigten Feldtypen; man muss sie bei jedem Projekt neu aufbauen. Das führt dann dazu, dass http://demo.processwire.com eben durch die enorm vereinfachte Felder-Philosophie ziemlich schnell umgesetzt sind. https://www.youtube.com/watch?v=IHqnLQy9R1A&list=PLo7Qkm2fy7zDdXCHTBUZXG7C3poa3efAQ&index=2.

Eine Webseite für einen speziellen Kundenwunsch hätten wir damit wunderbar umsetzen können, wenn wir a) die Zeit gehabt hätten uns in Processwire intensiv einzuarbeiten und b) wir nicht so auf Wordpress stehen würden.
Die Voraussetzungen

Die Kunden hatten eine alte Seite mit ziemlich vielen Daten, die in Beziehung miteinander stehen. Wenn wir uns auf die Processwire-Demo-Seite von oben beziehen: eine Seite mit Hochhäusern. Jeder Stadt sind dort Hochhäuser zugeordnet. Jedem Hochhaus eine spezifische Höhe, ein Baujahr und die Architekten. Diese spezifischen Daten sind wiederum untereinander verknüpft: Es gibt Übersichtsseiten über Architekten und welche Häuser sie entworfen haben, wie auch Seiten mit Häusern gleicher Höhe.
Das Problem

Das Problem an der Sache war, dass die gesamten Daten der alten Kundenseite via PHP aus Text-Dateien ausgelesen wurden und bei Syntaxfehlern natürlich das ganze Beziehungsgeflecht kaputt gemacht werden konnte. Deshalb hatte der vorherige Entwickler gesagt: Ihr dürft das nicht ändern, ich mach das gerne für euch.

Der Kunde möchte es aber bei einer Wordpress-Seite selbst ändern.
Die Vorüberlegungen

Uns ist es enorm wichtig, wenn nicht sogar am wichtigsten, dass die Update-Fähigkeiten unserer Wordpress-Seiten gewahrt bleiben. Deshalb sind Frickeleien am Core natürlich tabu und auch Plugins werden bei uns nur entwickelt, wenn es zu diesen einen längerfristigen Service & Wartungsvertrag gibt.

Wir brauchen eine flexible Lösung, die quasi das Kategorie/Tag-System von Wordpress aufbohrt. Zusätzlich soll der Inhalt nur an speziellen Positionen im Template ausgeben werden und jederzeit selbst von dem Kunden gepflegt werden können.

Und es klappt!
Die workin media Lösung

Viele, die sich schon intensiver mit Wordpress auseinandergesetzt haben, kennen mit Sicherheit das Plugin http://www.advancedcustomfields.com von Elliot Condon. Damit kann man relativ simpel neue Inhaltsfelder generieren um nicht-statische Inhalte an fixen Positionen im Layout auszugeben.

https://workin-media.hnz.io/wp-content/uploads/2015/06/advanced-custom-fields.png Ansicht des Plugins im Backend.

Jedem Feld kann dort ein Label zugeordnet werden. Wir haben nun das Beispiel „Hochhaus“ genommen und als Checkbox angelegt: Jedes Hochhaus ist dort seiner Seite zugeordnet (siehe links).

Wenn man nun eine neue Seite erstellt, beispielsweise „New York City“, dann kann dort der Nutzer „Park Avenue“ und „Chrysler Building“ anhäkeln; denn wir wissen ja alle, dass das AT&T Corporate Center in Chicago steht.

Diese manuelle Zuordnung mussten wir so implementieren, weil bei unserem Kunden, anders als bei den Hochhäusern, sich die Elemente einer Kategorie oft verändern können und er so die Möglichkeit hat auf der Seite, auf der sie ausgegeben werden, die Inhalte zu definieren.

Die Ausgabe haben wir mit folgendem Code in der function.php des aktiven Themes gesteuert:

// Add Shortcode
function hochaus() {

$values = get_field('Hochaus');
$field = get_field_object('Hochhaus');
$label = $value[$key];

if($values) {
echo '
';
foreach($values as $value)
{
echo '- ' . '[' . $value . '](' . $value . ')' . '
';
}
echo '
';
}
}
add_shortcode( 'hochhaus', 'hochhaus' );

Was macht der Code? Er erstellt über den Shortcode eine Liste, mit allen angehäkelten Häusern an der Position des Shortcodes. Außerdem verlinkt er sie zu dem Linkziel, das im ACF definiert wurde.
Wofür eignet sich die Methode?

- Darstellung kleinerer Inventarlisten

- Zuordnung verschieder Datenpunkte

- Flexible Handhabung/Pflege der Ausgabe

Bildnachweis: https://pixabay.com/de/einstellungen-optionen-software-265131/