Kategorien
Allgemein News Services

Keine unerwarteten Vertragsverlängerungen – bei uns hast du die Kontrolle!

Einen Service zu beanspruchen kann manchmal zu einer regelrechten Irrfahrt durch unübersichtliche Vertragslaufzeiten und automatischen Verlängerungen werden. Die Kontrolle über alle Vertragsbedingungen zu behalten ist schwer. Und dann der ärgerliche Moment, wenn am Monatsende plötzlich Kosten für etwas auftauchen, das du gar nicht mehr brauchst. Du hast genug davon? Wir auch! Wir bieten dir Fairness und Transparenz – und geben dir die totale Kontrolle über deine Vertragslaufzeiten. Auf dich wartet keine böse Überraschung am Monatsende. Auch wenn sich unsere Wege trennen sollten, steht deine Zufriedenheit für uns an erster Stelle.

Denn ab sofort führen wir bei NOVATREND eine Info-Mail ein, die dich einen Monat vor der automatischen Vertragsverlängerung an die bevorstehende Kündigungsmöglichkeit erinnert. Somit geben wir dir die Gelegenheit, deine Produktverträge bei uns zu überdenken. Entscheidest du dich gegen eine Vertragsverlängerung, bedauern wir zwar deinen Weggang – sind aber glücklich, dich mit einem guten Gefühl weiterziehen zu lassen. Alles was du dafür tun musst, ist, dich im NOVATREND Kundencenter einzuloggen und innerhalb von zwei Wochen nach Erhalt der Mail mit einem Klick zu reagieren und dein Vertrag wird fristgerecht gekündigt.

Selbstverständlich hast du auch die Möglichkeit, bei uns zu bleiben und weiterhin von unserem Service und Know-how zu profitieren. Wenn du bis zwei Wochen nach Erhalt der Info-Mail keinen Kündigungswunsch im NOVATREND Kundencenter signalisiert hast, wird dein Produktvertrag wie gewohnt automatisch und bindend um ein Jahr verlängert.

Bei uns wartet auf dich kein Hindernisparcours, wenn du dich für eine Kündigung unserer Produkte entscheidest. Wir bieten eine faire und transparente Lösung, die uns allen in guter Erinnerung bleibt. Wir wollen niemanden durch listige Geschäftspraktiken an uns binden, sondern bieten einen Service, der auf gegenseitigem Vertrauen basiert – und nicht auf einer verpassten Kündigungsfrist. Wenn dir das ebenfalls wichtig ist, bist du bei uns an der richtigen Adresse.

Kategorien
Betriebssysteme

Apple macOS Sierra Version 10.12

Ein Artikel über ein Apple Betriebssystem?
Ich versuche es mal 😉
Letzte Woche gab es Betriebssystem Updates bei Apple. Da es in unserem Haushalt mehrere Geräte gibt (Telefone, Laptops) gibt es im Fall eines Update immer etwas zu tun. Meistens merke ich keine großen Unterschiede nach der Installation des Updates, aber ich lese immer von unzähligen neuen Features. Bei näherem Hinsehen sind das dann Änderungen oder Erweiterungen, die ich oft nicht benötige oder die Anwendungsfälle betreffen, die ich nicht habe. Bei diesem Update sind mir ein paar Veränderungen positiv aufgefallen. Daher möchte ich es diese Woche mal mit einem recht persönlichen Apple „Fanboy“ Artikel versuchen.

Warum benutze ich Apple Produkte?

Zunächst stellt sich natürlich die Frage, warum ich überhaupt Apple Produkte benutze, wenn ich doch über Open Source Software schreibe. Die Antwort ist ziemlich pragmatisch. Bevor ich zum „Apple User“ wurde, hatte ich meistens Laptops mit einer parallelen Linux und Windows Installation (vor etwa 10 Jahren). Wenn ich allerdings meinen Laptop schnell mal zu- und dann wieder aufklappte, ging meistens irgendwas nicht, beispielsweise das WLAN. Bei den Apple Nutzern, die ich sah, schien das zu funktionieren. Ich probierte beim nächsten anstehenden Laptop Kauf also mal ein MacBook aus und bin seither bei Apple geblieben. Ich kaufe meistens die absoluten Standardmodelle, weil ich keine großen Ansprüche an Speicher und Geschwindigkeit habe. Das Backup mit der Time Machine funktioniert hervorragend, die Integration mit der Stereoanlage und Airplay auch. Linux läuft auf dem NOVATREND Server und bei mir lokal in virtuellen Maschinen und ich bin mit der Kombination zufrieden. Sogar der Wiederverkaufswert der Geräte nach mehr als 3 Jahren ist gut.

Bei Telefonen war es ähnlich. Erst hatte ich kein Telefon, dann eins mit Android, dann die Nexus Geräte von Google mit Cyanogen und seit einem Jahr ein iPhone. Vor dem Wechsel hatte ich mit dem Fairphone geliebäugelt. Seit einem Jahr kann ich nun auch überall im Haus die Musik auswählen und die Lautstärke regeln 🙂 (Ich hatte natürlich auch so eine AirPlay App auf dem Android Telefon aber so richtig hat das nie funktioniert). Einen Fernseher haben wir nicht, also auch kein Apple TV und auch eine Apple Watch ist nicht geplant (so gar nicht 😉 ).

Momentan überlege ich mit dem Laptop wieder zu Linux (Ubuntu) zu wechseln und tatsächlich ein Fairphone zu kaufen. Beste Voraussetzungen also um einen macOS Sierra Fanboy Artikel zu schreiben 🙂

macOS Sierra

Der kostenlose Download war bei mir gute 4GB groß und da es in unserem Haushalt drei Mac OS X Geräte gibt und die Internetverbindung manchmal recht langsam ist, dauerte es ein wenig, bis alles heruntergeladen und installiert war. Die auffälligste Neuerung ist zunächst mal der Name. Das Produkt heißt nicht mehr Mac OS X sondern macOS Sierra (Version 10.12). Der Grund ist einfach eine Vereinheitlichung der Plattformen bei Apple, iOS, watchOS, tvOS und nun halt auch macOS.

About This Mac
About This Mac

Speicherspielchen

Nach der Installation des Updates fiel mir auf, dass ich plötzlich mehr Festplattenplatz zur Verfügung hatte. Ich weiß nicht mehr genau, wie viel vorher frei war, aber es waren immer so um die 15-20GB freier Plattenplatz. Nach dem Update waren es jedenfalls 36,97 GB – gut!

macOS Sierra - Storage
macOS Sierra – Storage

Danach entdeckte ich, dass ich den Speicherplatz jetzt auch verwalten kann – nochmal gut!

Manage Storage
Manage Storage

Dazu muss ich anmerken, dass Apple natürlich daran interessiert ist, iCloud Storage zu verkaufen und daher als erste Option zur Optimierung anbietet, den Dokumenten – und den Desktop Ordner, sowie alle Fotos in die iCloud zu verlegen. Wenn kein Platz mehr auf dem lokalen Rechner ist, werden Dateien automatisiert gelöscht und bei Bedarf neu geladen. Das scheint auch hervorragend zu funktionieren, kostet aber natürlich Geld und wird pro Monat abgerechnet (5 GB sind kostenlos). Ich nutze diese Funktion nicht, da ich sie nicht wirklich brauche.

Aber die Speicherverwaltung gefällt mir gut, weil es jetzt einfacher ist, die Festplatte aufzuräumen. Außerdem kann man den Papierkorb so einstellen, dass Dateien nach 30 Tagen im Papierkorb gelöscht werden – gut!

Wo wir gerade beim Speichern sind. Wenn bei Notebook und Telefon Bluetooth eingeschaltet sind, kann man per Zwischenablage Dateien und Texte austauschen. Also beispielsweise einen Screenshot vom Telefon mal eben auf dem Laptop einfügen und anders herum. Das Ganze funktioniert erstaunlich gut.

Copy und Paste
Copy und Paste

Hier als Beispiel ein Screenshot meiner Kommandozeile auf dem iPhone, die gerade mit einem Raspberry Pi Computer verbunden ist (Das iPhone als Kommandozeile/Terminal funktioniert übrigens sehr gut).

Screenshot vom iPhone per Zwischenablage
Screenshot vom iPhone per Zwischenablage

Nur um den Screenshot hier in unser WordPress Blog System zu bekommen, muss ich ihn noch auf dem Computer abspeichern und dann auf den Server hochladen.
Feature Request: Es wäre gut, wenn WordPress per Zwischenablage „befüllt“ werden könnte :).

Bei der Gelegenheit habe ich übrigens einen Import von Fotos auf dem Telefon entdeckt ohne iTunes und ohne iCloud (Das gibt es bestimmt schon länger 🙂 ) – gut!

Import vom iPhone
Import vom iPhone

Picture in Picture Videos

Ich habe das mal zufällig auf dem Telefon entdeckt als ich ein Video auf YouTube angesehen habe. Man kann das Video, dass man gerade guckt nach unten ziehen. Dann wird es etwas kleiner, läuft aber weiter und man kann dann weiter auf YouTube nach anderen Videos suchen. So eine ähnliche Funktion gibt es nun auch in macOS Sierra im Safari Browser. Wenn du in einem Video Player auf einer Website das Picture in Picture Zeichen siehst …

Picture in Picture
Picture in Picture

… dann kannst du das Video „herausziehen“ und in eine Ecke am Bildschirm positionieren. So sieht das dann etwa aus:

Picture in Picture
Picture in Picture

Wenn du das Zeichen nicht siehst (beispielsweise bei YouTube), dann musst du zweimal rechts klicken. Nachdem ich verstanden habe, wie es geht, finde ich dieses Feature wirklich gut! Du kannst dir ein laufendes Video gewissermaßen in eine Ecke kleben, das Browserfenster minimieren und weiterarbeiten (wenn es mal eine nicht so komplizierte Arbeit ist). Hier ist das Video zum selbst ausprobieren:

Dateisystem AFPS

Apple führt mit macOS Sierra ein neues Dateisystem ein. Es heisst AFPS (Apple File System) und löst das fast 30 Jahre alte System HFS (Mac OS Extended) ab. Es wird von allen Apple Plattformen unterstützt (macOS, iOS, tvOS, watchOS). Ausser vielen anderen neuen Features (SSD optimiert, 64 bit, Snapshots, Clones, native Verschlüsselung) ist das Dateisystem AFPS ausschließlich Case Sensitive. HalloWelt.html und hallowelt.html sind also zwei Dateien. Das gab es auch schon vorher, aber nur, wenn man es explizit so eingestellt hat (Mac OS Extended (Journaled, Groß-/Kleinschreibung)).

Hinweis: Das Update auf macOS Sierra lässt auf deiner Platte alles beim Alten, die Platte wird also nicht umformatiert. So nach und nach will Apple APFS allerdings als Standard einführen und der Übergang ist 2017 geplant. 

Weitere Features

Die Spracherkennung Siri gibt es jetzt auch unter macOS Sierra, Apple Pay kann im Safari Browser genutzt werden, Benutzer einer Apple Watch können den Mac automatisch entsperren, wenn sie sich in der Nähe aufhalten, die iMessage App wurde überarbeitet und die Fotos App erkennt jetzt Gesichter.

Bei diesen Features weiß ich noch nicht so recht, ob sie mir eher Angst machen oder einen echten Nutzen für mich haben. Wie geht es dir?

Fazit

Es ist viel passiert in macOS Sierra und das Arbeiten damit gefällt mir gut. Auf der einen Seite wird die Integration der verschiedenen Apple Betriebssysteme immer besser, auf der anderen Seite kommen aber auch immer mehr Features, wie Siri, bei denen ich noch nicht weiß ob ich jemals mit meinem Computer sprechen möchte 🙂


tl;dr: Ich erzähle über Neuigkeiten in Apple macOS Sierra

 

 

 

Save

Kategorien
Content Management Systeme Webdesign

Ein Plugin für WordPress entwickeln

Nachdem ich letzte Woche über die Entwicklung von Drupal Modulen geschrieben habe, heute ein Artikel über die Entwicklung eines WordPress Plugins. WordPress definiert ein Plugin als

A WordPress Plugin is a program, or a set of one or more functions, written in the PHP scripting language, that adds a specific set of features or services to the WordPress site, which can be seamlessly integrated with the site using access points and methods provided by the WordPress Plugin Application Program Interface (API).

frei übersetzt also …

Ein WordPress Plugin ist ein Programm oder eine Sammlung von in PHP geschriebenen Funktionen, die einer WordPress Website einen Service oder eine bestimmte Funktionalität hinzufügen. Services können die Zugriffspunkte und Methoden der WordPress API „nahtlos“ nutzen.

Bevor du dein eigenes Plugin schreibst, lohnt es sich durchaus auf wordpress.org zu suchen ob ein solches Plugin schon existiert. Mittlerweile stehen knapp 50,000 Plugins zum Download bereit und die Chance ist groß, dass jemand dein Problem bereits gelöst hat.

Erste Schritte

Bevor du etwas programmierst, brauchst du einen Namen für dein Plugin. Du kannst prinzipiell jeden Namen nehmen. Wenn du dein Plugin aber für Dritte zum Download anbieten willst, sollte der Name einmalig sein, damit er nicht mit anderen Plugin Namen in der WordPress Installation kollidiert. Eine Kombination aus deinem Namen oder dem Namen deiner Firma und der Aufgabe des Plugins ist normalerweise „einmalig genug“. Nehmen wir also als Namen „Novatrend-Hello-World“. Deine Plugin Datei heißt dann novatrend-hello-world.php und liegt in einem Verzeichnis mit dem Namen novatrend-hello-world. Dieses Verzeichnis liegt in [WordPressRoot]/wp-content/plugins. Theoretisch kannst du die Datei auch direkt in das [WordPressRoot]/wp-content/plugins Verzeichnis legen. Ein eigenes Verzeichnis für dein Plugin erhöht allerdings erheblich die Übersicht. Erstelle also mit einem Editor deiner Wahl diese Datei und speichere sie ab ([WordPressRoot]/wp-content/plugins/novatrend-hello-world.php).

<?php
/*
Plugin Name: Novatrend Hello Welt
Plugin URI: http://blog.novatrend.ch/
Description: Hello World WordPress Plugin
Version: 1.0
Author: Hagen Graf
Author URI: http://hagen.cocoate.com
License: GPLv2
*/
?>

Datei – novatrend-hello-world.php

Plugin wird im Dashboard angezeigt

Wenn du nun in deinem Dashboard die Plugins anzeigst, wird auch dein Plugin angezeigt und du kannst es aktivieren!

WordPress - Neues Plugin im Dashboard
WordPress – Neues Plugin im Dashboard

Plugin im Dashboard bearbeiten

Je nach persönlicher Vorliebe kannst du dein Plugin auch im Dashboard bearbeiten. Dazu klickst die einfach auf Plugins -> Editor oder Bearbeiten in der Plugin Liste.

WordPress - Plugin im Dashboard bearbeiten
WordPress – Plugin im Dashboard bearbeiten

Hello World!

Nun brauchen wir noch den Programmcode, um den Hello World Text anzuzeigen. Beim Drupal Beispiel erzeugte das neue Modul eine eigene Seite und gab dort den Text Hello World aus. WordPress Plugins werden oft genutzt um in vorhandene Seiten/Beiträge etwas einzublenden. Wenn du dein Plugin um den folgenden Code erweiterst, wird am Ende einer jeden Einzelseite der Text Hello World angehängt.

// Ein Filter wird definiert, der auf die im ersten Parameter übergebene Variable 'the_content' die Funktion 'hello_world' anwendet.
add_filter('the_content','hello_world');

// Die Funktion hello_world hängt an den ihr übergebenen Inhalt ($content) einen Text an und liefert den veränderten Wert zurück.  
function hello_world($content){

  // Prüfung ob eine Einzelseite vorliegt (is_single?)
  if ( is_single() ) {
    // Text anhängen and Wert zurückgeben
    return $content . "<h1> Hello World </h1>";
  }

  // keine Einzelseite
  else {
    // text unverändert lassen
    return $content;
  }
}

Auf einer einzelnen Seite sieht das dann so aus:

WordPress - Hello World
WordPress – Hello World

Plugin mit eigener Seite und Menülink

An dieser Stelle kommt nun der Sinn und Zweck eines Plugins ins Spiel. Wenn ich beispielsweise für mein Plugin eine eigene Seite und eine eigene URL haben möchte, so lege ich während der Aktivierung des Plugins eine Seite und einen Menülink an.

<?php
function myplugin_activate() {
 add_option( 'my_plugin_activated', time() );
 // Seite Anlegen
 // URL anlegen
 // Text ausgeben
}
register_activation_hook( __FILE__, 'myplugin_activate' );
?>

Dieses „Seiten anlegen“ kann auf verschiedene Weise erfolgen. Ich könnte beispielsweise eine WordPress Seite beim Aktivieren des Plugins erzeugen (wp_insert_post()). Beim erfolgreichen Anlegen erhalte ich die ID des Beitrages als Rückgabewert. Mit der ID könnte ich dann den Menülink erzeugen. Als Code würde das etwa so aussehen:

<?php
/*
Plugin Name: Novatrend Hello Welt
...
*/

function myplugin_activate() {
 add_option( 'my_plugin_activated', time() );
 // Seite Anlegen
 $my_post = array();
 $my_post['post_title'] = 'Meine Plugin Seite';
 $my_post['post_content'] = '... Hallo Welt ...';
 $my_post['post_status'] = 'publish';
 $my_post['post_author'] = 1;
 $my_post['post_category'] = array(0);
 // Insert the post into the database 
 $id = wp_insert_post( $my_post );
 // Menülink anlegen
}

register_activation_hook( __FILE__, 'myplugin_activate' );
?>

Wenn du das Plugin deaktivierst und wieder aktivierst, wird bei jedem Aktivierungsvorgang eine Seite erzeugt. Nun kommt es darauf an, ob du dieses Verhalten haben willst oder nicht. Wenn du die Seite bei einer Deaktivierung behalten willst, aber bei einer Neuaktivierung die bestehende Seite nutzen möchtest (also keine neue Seite erstellen), musst du dir irgendwie merken, welche Seite dein Plugin bereits erstellt hat. Bei der Aktivierung müsste also eine Abfrage eingebaut werden, ob dieses Plugin in dieser Installation schon mal eine Seite erstellt hat und wenn ja, welche. Diese Funktion würde dann die Möglichkeit bieten beim Löschen des Plugins die bereits erstellte Seite zu löschen.

Eine Übersicht über mögliche Funktionen findest im Plugin Handbook (English) auf der WordPress.org Seite.

Fazit

Die Erstellung eines Plugins geht zunächst sehr einfach und führt zu raschen Ergebnissen. Wenn dein Plugin wirklich etwas tun soll, stellt dir WordPress viele vordefinierte Methoden (Funktionen, Hooks, Filter) zur Verfügung, deren Verwendungszweck du dir nach und nach erschließen kannst.

Links


tl;dr: Ein WordPress Plugin zu erstellen ist nicht schwer.

Save

Kategorien
Content Management Systeme

Ein Modul für Drupal 8 entwickeln

Hier im Blog habe ich schon oft über Drupal 8 geschrieben und so nach und nach auch eine Website als Beispiel erstellt (seafolly.ch). In diesem Artikel möchte ich zeigen, wie du selbst ein Erweiterungsmodul für Drupal 8  schreiben kannst.

Voraussetzungen

Ich gehe davon aus, dass du eine Drupal 8 Installation hast und dir drush und die Drupal Console auf der Kommandozeile zur Verfügung stehen.

Drupal VM

Ich weiß, dass die Drupal 8 Installation etwas holprig sein kann, deshalb nutze ich die lokale Test- und Entwicklungsumgebung Drupal VM. Drupal VM ist wie ein sich selbst aufblasendes Schlauchboot. Einfach an der virtuellen Reißleine ziehen … und es pumpt sich auf. Der Quick Start Guide hilft dir bei der Einrichtung. Die gesamte Installation kann 10-20 Minuten dauern, je nachdem wie schnell deine Internetanbindung ist.

Wenn alles läuft, sollten deine Drupal 8 Dateien unter

[DeinPfad]/drupal-vm/drupal/web

zur Verfügung stehen (In meinen Fall ist die VM im Pfad /Users/hagengraf/Documents/htdocs/drupal8 installiert, ich arbeite auf einem Apple OS X Rechner). Das Tool drush steht sofort zur Verfügung und wenn du in das Drupal Verzeichnis wechselst und den Befehl  drush status aufrufst, sollte folgende Ausgabe erscheinen:

Drupal version : 8.1.9
 Site URI : http://default
 Database driver : mysql
 Database hostname : localhost
 Database port :
 Database username : drupal
 Database name : drupal
 PHP executable : /usr/bin/php
 PHP configuration :
 PHP OS : Darwin
 Drush script : /Users/hagengraf/Documents/htdocs/drupal8/drupal-vm/drupal/vendor/drus...
 h/drush/drush.php
 Drush version : 8.1.3
 Drush temp directory : /tmp
 Drush configuration :
 Drush alias files :
 Drupal root : /Users/hagengraf/Documents/htdocs/drupal8/drupal-vm/drupal/web
 Drupal Settings File : sites/default/settings.php
 Site path : sites/default
 Sync config path : sites/default/files/config_PSeYq5YcuMjY2bWY4bQzPAbJn0dTxN7mIZY1OVBkCZ-
 w744SKb_YdYeEZwWSfmTus5qu5f6Bmw/sync

Um Drupal in deinem Browser sehen zu können, musst du in deiner hosts Datei die IP-Adresse 192.168.88.88 zuordnen, beispielsweise dem Namen drupalvm.dev.

192.168.88.88  drupalvm.dev

Im Browser sollte sich nach der Eingabe von http://drupalvm.dev folgendes Bild bieten:

Drupal - frisch installiert
Drupal – frisch installiert

Die Zugangsdaten sind standardmäßig

  • Benutzername: admin
  • Passwort: admin

Durch einen Klick auf Log in kannst du dich mit diesen Werten einloggen.

Drupal Console

Außer dem Kommandozeilentool drush (Drupal Shell) gibt es ein weiteres Tool namens Drupal Console. Während drush eher administrative Aufgaben erleichtert, geht es bei Drupal Console auch um das Erzeugen von Quellcode. Einen guten Überblick über beide Tools bietet dieser Artikel.

Um in der Drupal VM die Drupal Console nutzen zu können musst du dich einloggen

vagrant ssh

Die VM begrüsst dich:

Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64)

Du arbeitest ab jetzt in einer Linux Umgebung. Wechsle in das Verzeichnis deiner Drupal Installation.

cd /var/www/drupalvm/drupal/web

und rufe die Drupal Console mit dem Befehl

drupal

auf. Du solltest folgende Ausgabe erhalten:

Drupal Console
Drupal Console

Mit dem Befehl drupal list siehst du alle verfügbaren Befehle.

Nun sind alle Voraussetzungen erfüllt und du kannst dich an die Erstellung eines neuen Moduls wagen 🙂

Ein individuelles Modul

Erweiterungen in Drupal heißen Module. Es gibt Core und Contrib Module. Core Module sind im Drupal Standardpaket enthalten und liegen im Verzeichnis [drupalroot]/core/modules. Contrib Module sind Contributions (Beiträge) der Drupal Community, sie liegen im Verzeichnis [drupalroot]/modules/contrib. Selbst geschriebene Module sollten im Verzeichnis [drupalroot]/modules/custom abgelegt werden.

Der Befehl Drupal modules:debug erzeugt beispielsweise eine Liste aller vorhandenen Module.

Neues Modul erzeugen

Der Befehl drupal generate:module oder kürzer drupal gm erzeugt eine neue Modulstruktur. In einem Dialog werden die notwendigen Werte abgefragt. Hier mein Dialog für die Erstellung des MyModule Moduls.

vagrant@drupalvm:/var/www/drupalvm/drupal/web$ drupal gm
Enter the new module name: My Module
Enter the module machine name [my_module]: mymodule
Enter the module Path [/modules/custom]:
Enter module description [My Awesome Module]: My first Drupal 8 Module
Enter package name [Custom]:
Enter Drupal Core version [8.x]:
Do you want to generate a .module file (yes/no) [yes]:
Define module as feature (yes/no) [no]:
Do you want to add a composer.json file to your module (yes/no) [yes]:
Would you like to add module dependencies (yes/no) [no]:
 Do you confirm generation? (yes/no) [yes]:


Generated or updated files
 Site path: /var/www/drupalvm/drupal/web
 1 - modules/custom/mymodule/mymodule.info.yml
 2 - modules/custom/mymodule/mymodule.module
 3 - modules/custom/mymodule/composer.json
vagrant@drupalvm:/var/www/drupalvm/drupal/web$

Die Drupal Console erzeugt den Code für ein neues Modul (drei Dateien). In der Datei mymodule.info.yml finden sich die abgefragten Werte wieder.

name: My Module
type: module
description: My first Drupal 8 Module
core: 8.x
package: Custom

Modul installieren

Nachdem wir das Modul erzeugt haben, müssen wir es auch installieren. Das übernimmt der Befehl

drupal module:install mymodule
Modul installieren
Modul installieren

Das Modul ist nun installiert, aber es tut natürlich noch nichts. Im Browser kannst du aber schon sehen, dass etwas Neues vorhanden ist (http://drupalvm.dev/admin/modules).

My Module im Browser
My Module im Browser

Hello Drupal Beispiel

Das neue Modul soll (nach bewährter Tradition) zunächst „Hello Drupal“ im Browser ausgeben. Damit das klappt, brauchen wir einen sogenannten Controller, der die Nachricht ausgibt und eine Weiterleitung (route), die eine URL Eingabe an den Controller weiterleitet. Den Controller erzeugst du mit dem Befehl

drupal generate:controller

Hier wieder der gesamte Dialog als Screenshot

Controller erzeugen
Controller erzeugen

Jetzt sind wir schon ein ganzes Stück weiter und können das neue Modul im Browser aufrufen. Unter drupalvm.dev/hello erfolgt folgende Ausgabe.

Hello Methode im Browser
Hello Methode im Browser

Bisher haben wir noch keine Zeile Quellcode geschrieben, aber wir haben schon eine funktionstüchtige Struktur des neuen Moduls. Die Ausgabe weist darauf hin, dass die Methode hello implementiert werden muss. Wir müssen also die Ausgabe des Textes programmieren.

Die Controller Datei mit der hello Methode befindet sich im Verzeichnis [drupalroot]/module/custom/mymodule/src/Controllers und hat den Namen MyModuleController.php. Die Methode hello sieht darin momentan so aus:

 public function hello() {
 return [
 '#type' => 'markup',
 '#markup' => $this->t('Implement method: hello')
 ];
 }

Sie gibt den Text Implement method: hello aus. Um den obligatorischen Hello Drupal Text anzuzeigen, musst du also nur den Ausgabetext ändern …

... '#type' => 'markup',
 '#markup' => $this->t('Hello Drupal')
 ];
 ...

und den Cache löschen …

drupal cache:rebuild

Nach einem Reload der Seite im Browser steht der Hello Drupal Text auf der Website.

Hello Drupal
Hello Drupal

Yeah – ein eigenes Drupal Modul!

Nun sollten dem Modul eine sinnvolle Funktionalität und ein Workflow zu einer produktiven Drupal Website gegeben werden um das momentan lokal vorhandene Modul zum Einsatz bringen zu können.

Fazit

Auch wenn das Hello Drupal Beispiel natürlich extrem einfach ist, zeigt es doch prinzipiell den Weg der Entwicklung von individuellen Modulen in Drupal.

Links


tl;dr: Es ist relativ einfach möglich (und es macht sogar Spass) individuelle Drupal Module zu schreiben.

Save

Kategorien
Content Management Systeme Editoren Shared Hosting Site Builder Webdesign

Responsive Layouts mit dem WordPress Plugin Page Builder

Solange du einfache Layouts benutzt, sind Standard Content Management Systeme eine gute und nützliche Sache. Bei individuellen Layout Wünschen, wie beispielsweise einem Artikel, der aus mehreren Elementen wie Textteilen, Fotos und vielleicht einer Zeile mit drei Spalten besteht, wird die schnelle Umsetzung schon schwieriger. Erschwerend kommt hinzu, dass der Artikel natürlich responsiv sein sollte um auf einem mobilen Gerät gut dargestellt zu werden. Das Sahnehäubchen wäre noch, dass Autorinnen und Autoren bei besagtem Artikel das Layout selbst erledigen können.

Ein Beispiel für ein WordPress Plugin, dass genau das versucht, ist der Page Builder von SiteOrigin.

WordPress - Page Builder by SiteOrigin
WordPress – Page Builder by SiteOrigin

Als sinnvolle Ergänzung zum Haupt Plugin gibt es das SiteOrigin Widgets Bundle Plugin, das einen Editor und vordefinierte Widgets enthält, beispielsweise für Google Maps, selbst gehostete Videos, Slider und vieles andere mehr.

Wordpress - SiteOrigin Widgets Bundle
WordPress – SiteOrigin Widgets Bundle

Beitrags Layout verändern

Wenn du einen neuen Beitrag erstellst, musst du eine Überschrift und einen Text erstellen. Das Textfenster besteht normalerweise aus dem Visuell Tab mit einem WYSIWYG Editor und dem Text Tab. Nach der Installation des Page Builder Plugins erscheint ein zusätzliches Tab mit dem Namen Page Builder.

WordPress - Neuer Beitrag
WordPress – Neuer Beitrag

Das Page Builder Tab

Beim ersten Aufruf des Page Builder Tabs werden die verschiedenen Optionen angezeigt. Du kannst ein Widget, eine Zeile (Row) oder ein vordefiniertes Layout innerhalb des Beitrags erzeugen.

WordPress - Beitrag - Page Builder
WordPress – Beitrag – Page Builder

Beispiel: Ein Button

Ein einfaches Widget ist ein Button, der mit einem Link hinterlegt werden kann.

WordPress - Page Builder - Button
WordPress – Page Builder – Button

Nach dem Speichern siehst du in deinem Beitrag einen funktionsfähigen Button.

WordPress - Page Builder - Button im Beitrag
WordPress – Page Builder – Button im Beitrag

Außer dem Button stehen zahlreiche andere Widgets zur Verfügung. Page Builder nutzt neben eigenen Widgets natürlich auch die aus dem Widget Bundle Paket und bereits vorhandene WordPress Widgets.

WordPress - Page Builder - Widgets
WordPress – Page Builder – Widgets

Zeilen und Spalten

Mit Add Row lassen sich einzelne Zeilen einfügen, die wiederum aus beliebig vielen Spalten bestehen können. Die Spalten können mit beliebigen Widgets gefüllt werden. Du kannst also beispielsweise zwei Texte und einen Button in drei Spalten anzeigen.

WordPress - Page Builder - Zeile
WordPress – Page Builder – Zeile

Auf der Website sieht mein Beitrag dann so aus:

WordPress - Page Builder - Zeile mit drei Spalten
WordPress – Page Builder – Zeile mit drei Spalten

In einen Beitrag kannst du beliebig viele Zeilen einfügen.
Eine Spalte kann beispielsweise eine Google Map enthalten. Um die Karte anzeigen zu können, musst du über ein Google Konto verfügen und dir einen API Key erzeugen (kostenlos). Den Link zur Erstellung des API Keys findest du in den Einstellungen des Google Maps Widget.

Alle Layout Anpassungen wie beispielsweise das Verschieben der Reihen und Elemente werden in der Vorschau des Live Editors sofort nachvollzogen.

WordPress - Page Builder - Live Editor
WordPress – Page Builder – Live Editor

Vordefinierte Layouts

Auster den individuellen, selbst zusammengestellten Layouts, gibt es auch vordefinierte Layouts. Je nach verwendetem WordPress Template passen sie mehr oder weniger gut, sind allerdings vollständig anpassbar.

WordPress - Page Builder - vordefiniertes Layout
WordPress – Page Builder – vordefiniertes Layout

Fazit

Wenn du bereits WordPress benutzt und mit dessen Arbeitsweise vertraut bist, ist der Page Builder eine wirklich interessante Ergänzung. Der Arbeitsablauf ist übersichtlich und es stehen viele Widgets zur Verfügung.

Links


tl;dr: Mit dem Page Builder Plugin kannst das Layout von WordPress Beiträgen vielfältig verändern.

Save