Alle Artikel zu #php


Externe Links extern öffnen

Hier im Blog werden, wenn das Theme gerade richtig funktioniert, externe Links anders dargestellt als interne, und bei den internen wiederum die, die zu Posts führen anders als die die zu anderen Inhalten führen. Damit ich nicht immer von Hand die CSS-Klassen angeben und das target-Attribut für externe Links setzen muss, habe ich mir zuerst ein Makro geschrieben (G11 sei Dank), später dann ein PHP-Script was die Datenbank durchforstet. Das war auch deshalb nötig, weil ich keine Lust hatte, von Hand alle alten Posts durchzugehen und die Links zu markieren.

Da ich irgendwie immer noch zu faul bin die Makros zu benutzen oder die Links zu markieren, benutze ich das Script immer noch ab und an. Und mittlerweile habe ich beschlossen, einen CronJob dafür einzurichten. Dann ist's auch nicht schlimm, wenn ich mal vergesse einen Link zu markieren.

Externe Links sollten sich zur Abgrenzung von der Website, von der aus man sie aufruft, in einem neuen Fenster bzw. heutzutage ja eher in einem neuen Tab öffnen. Ich verstehe die Entwickler von Webseiten, bei denen das nicht der Fall ist, nicht. Der Aufwand ist minimal und mir sind keine Probleme bekannt. Es nervt total, wenn man einem externen Link folgt und die Seite auf der man vorher war dann direkt weg ist. Meine Meinung, aber vielleicht teilen einige Leute die ja.

Für den Fall biete ich jedenfalls mein Script zum Download an. Also, für den Fall, dass jemand meine Meinung teilt, auch einen Wordpress-Blog hat und in diesem Links markieren möchte. Man muss oben seine Domain angeben, damit das Script interne URLs erkennt. Danach müssen die Datenbankdaten angegeben werden. Anschließend werden die Posts durchlaufen und per regulären Ausdrücken auf Links überprüft. Die URL wird bei internen Links gestrichen, einige Schreibweisenfehler werden korrigiert. CSS-Klassen werden gesetzt (ggf. anpassen!) und das target-Attribut bei externen Links. Abschließend geht das Ganze zurück in die Datenbank. An verschiedenen Stellen habe ich Kontrollelemente eingebaut, die genutzt werden können, um die Arbeit des Scripts zu überprüfen; das macht natürlich nur Sinn, wenn man das Schreiben in die Datenbank dieweil deaktiviert.

Das Script darf zu nicht-kommerziellen und kommerziellen Zwecken frei benutzt und verändert werden. Daher keine noch so freie Lizenz, sondern ausnahmsweise mal: Macht was ihr wollt! :D (Das bedeutet in der Konsequenz übrigens auch den Ausschluss jeglicher Haftung durch mich. Sichert also im Zweifel eure Datenbank vorher - ich hab auch mal was kaputt gemacht damit, weil n Fehler drin war.)

Falls wirklich jemand die Datei lädt und benutzt, wär's cool, wenn derjenige hier einen Kommentar schreiben würde. Das gilt auch, wenn noch Fehler drin sind. Auch Fragen sind willkommen, alles wie immer halt hahahah

Achtung Update: Das Script produziert in seiner aktuellen Version Fehler, was man daran sieht, dass es den Link zu sich selbst geschrottet hat -.- herunterladen kann man es, wenn man das http:// killt funktioniert natürlich nur intern. Extern fehlt ein konzertheld.de/ zwischen dem http:// und dem wp-content. Ich fixe das dann mal und gebe ein neues Release heraus.

linksmarkieren-anon.php



Zahlen & Umbauten

Wieder mal ein paar Updates am Blog.
Content

  • Die Themensuche ist in einer verbesserten Version fertig gestellt. Über der Titelzeile neben den Kategorien ist jetzt das Thema zu sehen (anklickbar), in der Vollansicht gibt es unter dem Post einen Link. Die Themensuche ist jetzt noch präziser und findet nun endgültig nur noch Artikel, die von mir als zu dem selben Thema gehörig gekennzeichnet wurden. Dafür musste ich das Trennzeichen nach | ändern, da Leerzeichen zu einer Oder-Suche führen und Unterstriche als Leerzeichen behandelt werden...
  • Das Titel-Tag [blog] ist rausgeflogen, ich habe nun eine eigene Kategorie für Posts, die den Blog betreffen eingeführt. Sie heißt Blog. Total kreativ, ich weiß.
  • Irgendwann letztens habe ich wohl mal den 200. Artikel veröffentlicht, es müsste der Vorab-Post zu den Kirchentagsberichten sein, aber aus irgendwelchen Gründen hat Wordpress zwischendurch mal die Zählung geändert und ich hatte 201 Artikel statt 200, obwohl ich gar keinen veröffentlicht habe. 8O
  • Ein paar Verbesserungen am Quellcode, um die Validität zu erhöhen. Wenn mir einer den Fehler nennt, der jetzt noch auftrittt... *kopfschüttel* Was unterscheidet diesen Link <a href="http://www.stepmania.com/" class="extern" target="_blank">Seite</a> von diesem <a class="extern" href="http://de.wikipedia.org/wiki/Tanzmatte" target="_blank">Wikipedia</a> außer der Ziel-URL? Richtig: Der zweite wird vom Validator als falsch angestrichen. :wall: (es ist nicht immer dieser, aber immer irgendeiner im Dokument - aber nur einer! Angeblich existiert bei diesem einen dann das Attribut target nicht.)

Backend & Datenbank

  • Es werden nicht mehr alle Überarbeitungen gespeichert, sondern nur die neusten zwei. Eigentlich brauche ich diese Funktion gar nicht, aber sie gibt irgendwie Sicherheit... Wie das geht, habe ich hier gefunden: Quelle
  • Die alten Artikelversionen habe ich dann direkt mal alle gelöscht, dadurch ist die Datenbank um 196 Artikel ärmer. Schöne Entlastung.

Schimpfen auf Wordpress

  • Das Wordpress-Tag "code" formatiert Code nur so, dass er wie Code aussieht, zeigt aber tatsächlichen Code nicht an. Sprich, Links bleiben Links und werden nicht als Quellcode dargestellt. Das da oben ist also ein Misch aus "code" und eigenem Gefrickel.
  • Wenn ich einen Artikel anfange und speichere am Tag x und dann später am Tag y fertig stelle und veröffentliche, ist das Veröffentlichungsdatum nicht Tag y, sondern Tag x. Sprich, irgendwann angefangene Artikel befinden sich nach dem Publizieren nicht oben. -.-


Verzweiflung II

Seufz... nachts um halb 5 passieren dumme Fehler... DUMME Fehler... RICHTIG DUMME Fehler... und es ist doch gut, einfach in einem wacheren Zustand nochmal auf den Code zu schauen... mir ist sofort aufgefallen was falsch war... ein Anführungszeichen. Ich habe den Link geschlossen, bevor die Variable geschrieben wurde. D.h. die Variable wurde dann einfach wild in das a-Tag reingeschrieben... was der HTML Validator auch brav bemängelt hat, nur habe ich mir den heute nacht nicht angeschaut. Naja... es funktioniert jetzt... später mehr dazu. Jetzt schiebe ich erstmal ne Runde Frust wegen so einem DUMMEN Fehler. *heul*



Verzweiflung

Ich verzweifle gerade. Fast zweifle ich an meinem Verstand. Hier geht echt nicht alles mit rechten Dingen zu. Nicht genug damit, dass die offizielle Wordpress-Dokumentation auf wordpress.org fehlerhaft ist (die Funktion, mit der man die Post-ID bekommen soll, funktioniert schlicht nicht), nein... eine simple Ausgabe mit print in PHP verschwindet einfach! Folgenden Code habe ich eingefügt:

Screenshot PHP-Code mit unsichtbarem Fehler

Die auskommentierte Zeile tut genau das, was die folgenden drei zusammen tun... daran sieht man, wie verzweifelt ich bin. Eigentlich sollte, falls der angeforderte Wert (ein internes Metatag, um verwandte Posts zu identifizieren, später mehr dazu) nicht leer ist, ein Link erstellt werden, der eine Suche nach diesem Wert durchführt. Stattdessen wird der Link zwar erstellt, aber der Wert nicht eingefügt, obwohl er definitiv nicht leer ist, wie die anderen Zeilen beweisen.

Unter diesem Post (unter den Metadatan in der Vollansicht, also nicht auf der Startseite) kann man das Ergebnis begutachten. Es ist kein programmiertechnischer Fehler und kein Firefox-Fehler. Ich versteh's nicht. Der Link wäre gültig, wenn der Wert eingefügt werden würde. Denjenigen, der mir dieses Problem löst und die Lösung erklärt, lade ich ein... Essen, Cocktails trinken oder sowas... Problem gelöst, siehe Folgepost.

Nachtrag: Die eingerückten Zeilen nach dem if müssen natürlich von Klammern umgeben werden, das habe ich nachgeholt (ohne einen neuen Screenshot einzufügen), bringt mich aber mit dem Problem nicht weiter. Naja, wenn ich schon solche Fehler mache, sollte ich eh schlafen gehen...