Formular per AJAX verschicken

Wenn ein HTML-Formular abgeschickt wird, lädt normalerweise die Seite neu. Das ist vielleicht nicht immer die beste User-Experience, im Sinne von Progressive Enhancement aber der beste Ausgangspunkt.

Wenn wir für Benutzer*innen, die JavaScript aktiv haben (und bei denen das Laden und Verarbeiten der JS-Ressourcen geklappt hat) die Erfahrung verbessern wollen, bietet es sich in manchen Fällen an, das Formular per AJAX zu verschicken, sodass die Seite nicht neugeladen werden muss.

"Formular per AJAX verschicken" Weiterlesen

Bildschirminhalt mit FFmpeg für das Web aufzeichnen

Ich wollte vorhin – mal eben – für Twitter ein kleines Video aufzeichnen, das einen Teil meines Bildschirminhalts zeigt. Das Aufzeichnen hat auch relativ einfach funktioniert (nachdem ich herausgefunden habe, dass ich Ubuntu von Wayland auf Xorg umstellen muss), das Video wurde im Firefox allerdings nicht abgespielt.

Nach einiger Recherche bin ich auf das »Encoding Video«-Gist von Glen Cheney gestoßen, in dem ich die rettende Code-Zeile gefunden habe, die eine MP4 generiert, die auch in Firefox abgespielt wird:

ffmpeg -video_size 960x400 -framerate 25 -f x11grab -i :0.0+75,260 -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3 output.mp4
Code-Sprache: Bash (bash)

Mit der Zeile wird der Display-Inhalt in einer Größe von 960x400 Pixel aufgezeichnet, wobei die linke obere Ecke des aufgenommenen Bereichs 75 Pixel vom linken und 260 Pixel vom oberen Displayrand positioniert ist.

Veröffentlicht in Tipps

useEntityProp zum Verändern von Beitrags- oder Seitenattributen verwenden

Der Hook useEntityProp kann verwendet werden, um Attribute von Inhalten wie Seiten und Beiträgen zu verändern. Bisher hatte ich den nur genau so eingesetzt wie in einem Doku-Code-Beispiel, aber vorhin habe ich mir die Funktion etwas genauer angeschaut und hatte einen kleinen 🤯-Moment, als ich verstanden habe, wie der Hook funktioniert.

"useEntityProp zum Verändern von Beitrags- oder Seitenattributen verwenden" Weiterlesen

Block-Stile von WordPress-Core-Blöcken entfernen

Einige Core-Blöcke kommen mit zusätzlichen Block-Stilen daher, wie etwa der Zitat-Block, der neben dem Standard-Stil noch einen großen Stil hat. Wenn diese Core-Block-Stile nicht erwünscht sind, können sie seit WordPress 5.8 mit einem kleinen Code-Snippet entfernt werden.

"Block-Stile von WordPress-Core-Blöcken entfernen" Weiterlesen

Core-Optionen auf eigener Settings-Seite verändern

Bei einem Projekt musste ich kürzlich auf einer Settings-Seite im Backend neben eigenen Optionen auch die Core-Option für den Inhalt der Startseite und für die Blogseite einbauen. Das war allerdings nicht so einfach, wie ich erst gedacht hatte, weil die Settings-API genau prüft, welche Optionen von einer Einstellungs-Seite abgeschickt werden dürfen und nur diese abspeichert.

"Core-Optionen auf eigener Settings-Seite verändern" Weiterlesen

Mehr Übersichtlichkeit im Code mit weniger `else` und Schachtelung

Ich habe mich kürzlich vermehrt damit beschäftigt, besseren Code zu schreiben, weil das ein Aspekt ist, bei dem ich noch einiges lernen möchte. Ein einfach zu merkender und – wie ich finde – schnell einleuchtender Weg zu weniger komplexem Code ist die Vermeidung von else und die Reduzierung von Verschachtelungen im Code.

"Mehr Übersichtlichkeit im Code mit weniger `else` und Schachtelung" Weiterlesen

Fallstudie: About-Seiten von everysize mit Gutenberg

Ich kümmere mich schon seit einiger Zeit für everysize um Wartung und Anpassungen an ihrem Blog, das mit WordPress und einem modifizierten Drittanbieter-Theme läuft. Jetzt sollten die About-Us-Seiten wie Team, Über Uns, Partner und Jobs auch über WordPress gepflegt werden, um die Bearbeitung im Vergleich zur vorherigen Situation zu vereinfachen.

Dafür wurde von einer Agentur ein Layout für die unterschiedlichen Seiten erstellt und meine Aufgabe war die Umsetzung der Layouts in WordPress.

"Fallstudie: About-Seiten von everysize mit Gutenberg" Weiterlesen

WordPress-REST-API für nicht eingeloggte User deaktivieren

Bei einem Projekt mit einer vor öffentlichen Zugriffen geschützten Website sollte auch die REST-API nur für eingeloggte User aktiv sein, um zu verhindern, dass darüber Inhalte abgefragt werden können.

Nachdem ich zunächst geprüft habe, ob sich irgendwie die Permission-Callbacks verändern lassen, bin ich auf den rest_authentication_errors-Filter gestoßen, mit dem die Aufgabe relativ einfach zu lösen ist.

"WordPress-REST-API für nicht eingeloggte User deaktivieren" Weiterlesen

Bestimmte Blöcke in InnerBlocks-Kom­po­nente verbieten

Bei der Entwicklung von Gutenberg-Blöcken ist die InnerBlocks-Komponente ein (zumindest bei mir) oft eingesetztes Mittel. Diese Komponente ermöglicht es, innerhalb eines Blocks weitere Blöcke einzufügen – bei den Core-Blöcken ist sie beispielsweise beim Spalten- und Cover-Block im Einsatz.

Dieser Komponente kann über das Attribut allowedBlocks ein Array von Blocknamen übergeben werden, um festzulegen, welche Blöcke eingefügt werden dürfen. Das ist zum Beispiel bei Wrapper-Blöcken hilfreich, wie dem Spalten-Block, der als direkten Kindblock nur den Block Spalte erlaubt.

Etwas komplizierter wird es, wenn nur bestimmte Blöcke nicht erlaubt sein sollen, denn etwas wie disallowedBlocks gibt es nicht.

"Bestimmte Blöcke in InnerBlocks-Kom­po­nente verbieten" Weiterlesen

Wechsel von Windows auf Ubuntu als Haupt-Betriebssystem

Bisher hatte ich als Betriebssystem immer Windows und war damit meist auch sehr zufrieden. Mit dem Windows Subsystem for Linux waren meist auch die ganzen CLI-Tools, die es im Bereich Webentwicklung gibt, ohne große Probleme einsetzbar.

Allerdings gab es immer mal Kleinigkeiten, die dann doch nicht funktioniert haben, und in letzter Zeit ist mein Laptop immer mal wieder an seine Leistungsgrenze gekommen (was eventuell aber auch damit zusammenhing, dass ich eine Preview-Version von Windows verwendet habe).

Mit einem Wechsel auf Ubuntu habe ich schon ein paar Mal geliebäugelt, und vor ein paar Wochen war es dann soweit: ich habe Ubuntu als zweites Betriebssystem neben Windows installiert und nutze es seitdem fast ausschließlich, und abgesehen von ein paar Problemen am Anfang bin ich damit jetzt sehr zufrieden.

"Wechsel von Windows auf Ubuntu als Haupt-Betriebssystem" Weiterlesen