PHP: regex kurz notiert

tempa wrote this 23:33:

Ich treibe mich noch immer bei den PHP-Freaks herum. Jetzt im Regex-Tutorial (link lost). Die Regeln sind klar und einfach zusammengefasst und hier ist ein guter Platz, um die Audrücke für mich nochmal zu notieren:

REGEX-Metacharacters (~Ausdrücke)
Ausdruck Bedeutung
Kleine Übersicht der Regex-Audrücke
^ „Start der Zeile“/innerhalb eines Ausdrucks bedeutet es ’nicht‘
$ „Ende der Zeile“ bzw. genauer „bis zu einer neuen Zeile Zeichen“
Sobald ein Zeilenwechsel (n) im String vorkommt, ergibt ‚$‘ einenTreffer.
* „Zero (kein) oder mehr Treffer“ oder anders ausgedrückt egal wieviel,egal was
+ „Wenigstens ein Treffer muss sein“ also fast egal wieviel, egal was
? = optional, „kann vorkommen“
() Ausdrücke gruppieren
| = oder (a|b) bedeutet klein A oder klein B
. bedeutet ein beliebiges Zeichen
[] kennzeichnet eine Zeichenklasse [0-9] Zahlen 0-9 oder [a-z] Kleinbuchstaben A-Z
(latin-1…Umlaute und Sonderzeichen nicht eingeschlossen.)
{n,m} wenigsten ’n‘ Vorkommen und maximal ‚m‘ Vorkommen

Weiter geht es mit Teil Zwei dieses Tutorials auf PHP-Freak hier: Introduction to regular expressions (#2): ERE POSIX (link lost)

Ursprünglich gepostet am 1. November 06, 05:56 in meinem Blog „Silkester erzählt“.

Editland vs Smarty

tempa wrote this 16:05:

Eine Interessentin von Editland fragt an, wie man smarty und Editland verheiratet. Sie setzt für ihre Projekte Smarty ein und das Kundenprojekt ist fast fertig, es fehlt nur ein Editor für ein zwei Seiten, die der Kunde selbst einsetzen möchte.

Nun habe ich einige Seiten der Dokumentation von Smarty gelesen und je länger ich lese, desto stärker gewinne ich den Eindruck, dass der Designer genausogut gleich PHP lernen kann und die Scripte selbst schreiben kann, zumal einige Funktionen ziemlich albern sind, wie z.B. zwischen Buchstaben feste Leerschritte zu klemmen.

Wer einen Text gesperrt darstellen will, sollte nur dann Leerschritte verwenden, wenn er auch das Wort gleichzeitig verfremden will, so dass Suchmaschinen es nicht erkennen und Lesegeräte das Wort Buchstabieren soll. In allen anderen Fällen ist es besser für die Passagen ein Klasse und die CSS-Anweisung letter-spacing zu verwenden. Wenn ich also als Newbie derlei in der Dokumentation lese, dass Smarty dafür einen Befehl hat und das umsetzen kann, dann frage ich mich, aus welcher Zeit das System stammt und ob es heute noch Sinn macht es zu verwenden.

Sicher es ist schön, dass Smarty Absätze, Sätze und Wörter zählen kann und Absätze in einer Kaskade nach rechts einrücken. Aber wann brauche ich in Kaskade eingerückte Absätze?

Ich bin sicher, ich bin gegenüber Smarty ungerecht. Doch je länger ich darin lese, desto weniger überzeugt es mich. Soweit ich es verstanden habe, wird es das beste sein, die editierbaren Bereiche in einem Unterverzeichnis mit Editland zu installieren und dann die Bausteine, die der Kunde in einem ganz separaten System erstellt hat, mit Smarty nach vorne zu holen. Ich bin sicher, dass Smarty die Textbausteine aus dem Ordner Content Content aus dem Kunden-Editier-Ordner holen kann und in jede Seite einbinden kann. Zumindest wird das so behauptet. Damit der Kunde bei den Seiten, die er editiert das Layout drum herum hat, macht man das Template einfach noch einmal.

Das zumindest wäre jetzt meine Vorgehensweise, damit das fst fertige Projekt nicht noch einmal in Editland erstellt werden muss und damit der Kunde nur die Bereiche editieren kann … allerdings würde ich mich als Kunde verarscht vorkommen, wäre in dem Auftrag ein Editland, das eine Personenlizenz ist und nicht vermietet werden kann und ich könnte immer noch nicht alle Seiten editieren und auch nicht die Navigation meinen Bedürfnissen ja nach Unternehmensentwicklung anpassen und müsste immer noch zum Dienstleister gehen, dass er mir die Struktur anpasst.

Es ist eine Sache, ob man freiwillig diese Leistungen in die Hände kompetenter Hände gibt, oder es tut, weil nicht weiß, dass man es auch anders für das selbe Geld haben könnte.

Editland braucht kein Smarty, da es eine eigene Template-Engine hat. Editland braucht höchstens eine Nutzerverwaltung und die kann man theoretisch als Plugin einbinden, bzw. Editland hierfür entsprechend an der einen oder anderen Stelle in Absprache mit dem Entwickler umschreiben.

Obwohl mein Interesse an Smarty schon deutlich abgeflacht ist, denn ich sehe noch nicht wo Smarty mir das Leben als Designer erleichtert, werde ich mal noch in der Dokumentation weiterlesen … vielleicht wird es ja noch was … wobei ich dann wohl schon eher wieder auf WordPress steigen würde, wenn Einfachheit und Benutzerverwaltung gefragt ist. 🙂

Nanu? WP-Contact unsicher?

tempa wrote this 14:14:

Als immer offensichtlicher wurde, dass PHP-Kontaktformulare eine Schwachstelle haben, die es den Spamfuzzis erlaubt, ein solches Formular als Relay (= ‚Spamsendestation‘) zu nutzen. Ergo habe ich das Kontaktformular des WordPress-Plugin geprüft und aktualisiert.

Und war beruhigt, nachdem ich in der Version 1.3 folgende Funktion fand:

  1. function wpcf_is_malicious($input) {
  2. $is_malicious = false;
  3. $bad_inputs = array("r", "n", "mime-version", "content-type", "cc:", "to:");
  4. foreach($bad_inputs as $bad_input) {
  5. if(strpos(strtolower($input), strtolower($bad_input)) !== false) {
  6. $is_malicious = true; break;
  7. }
  8. }
  9. return $is_malicious;

Ich sah und war beruhigt. So lehnte ich mich also zurück und freue mich über den Service im KMU-Blog, den ich biete, ohne den Spammern ein Relay zur Verfügung zu stellen, denn impfen Sie ein bcc:, ein cc: oder ein to: in das Feld — was immer der Fall sein muss, damit sie ihre Spammails via PHP-Formular verschicken können, dann wird die Eingabe als böse gebrandmarkt und der Mailversand nicht ausgeführt.

Hat also Tom Diner nur das Plugin nicht in aktueller Form eingebaut gehabt? Und die Ergänzung bcc: ist nicht erforderlich, da cc: in bcc: enthalten ist und damit auch bcc: von der Funktion ausgefiltert wird.

via Robert Basic

PS: Übrigens sind auch die Formulare von Editland mit dem Impfschutz versehen. Wer sich nicht sicher ist, ob er eine aktuelle Version hat, sollte sich bei mir per Mail melden und ich schicke das Editland-Mail-Plugin, das in Editland mitgeliefert wird inklusive Impfschutz raus.

Schöner Code

Claudia Reiser wrote this 15:47:

php-Code erzeugt ein Muster

So schön kann php-Code sein, zumindest fürs Auge. Schön im Sinn von sauberem Code ist natürlich wieder eine andere Sache¦

WP-Plugin Zap Image zur Templatevorschau

tempa wrote this 05:02:

Sodele noch ein Plugin. Diesmal eines zur Präsentation von Bildern (der Plugin-Autor ist Zappelfilip Ein dickes Danke Schön an dieser Stelle.). Es ist Javascript basiert, allerdings, wer Javascript deaktiviert wird dennoch nicht im Stich gelassen. Also ganz nach meinem Geschmack und zur Demonstration gleich ein unvollendetes Template, das seit 2001 auf seine Umsetzung wartet. Einfach auf das Bild klicken für die Großansicht:

Template Erkan

Eines auf dessen Umsetzung ich mich freue. Vor allen Dingen seit ich diesen Trick von Stu Nichols kenne, denn damit ist mit dem richtigen Plugin möglich dieses Menü auf der obersten Ebene, die Menü-Bezeichnungen über die CMS-Verwaltung auch dem Redakteur ohne HTML-Kenntnisse der Site zu überlassen. Als ich den Homepage-Entwurf damals durchdachte, hatte ich mir vorgestellt, dass ich die Links als Grafiken mit Image-Replacement-Techniken mache. Auch beim Trick mit den <em>-Tags ist es Ratsam eine Zusatzinformation zu geben, z.B. in einem Titletag.

Bei aller Vorfreude weiß ich dennoch nicht, wann ich mich an diesen Entwurf mache. Ich bin fleißiger im Photoshop als in CSS und HTML. Da ich allerdings auch frei bin, welches Template ich denn nun gerade umsetzen will, ist das nicht tragisch, denn so werden in der Templaterie immer wieder neue Templates eingestellt.

Als Unvollendete ist dieser Website-Entwurf noch kein Template im Templaterie-Shop

Kunde will, dass immer ein neues Bild erscheint

tempa wrote this 11:53:

Mein Kunde möchte einen Bildwechsel im Popup der Galerie, geht das? Ja, kein Problem, macht man noch einen Platzhalter rein, oder man macht es per SSI … [Nachtrag: Oh Sch*** na hoffentlich hat der Kunde des Kunden noch lange ein altes System. PHP und SSI führt neuerdings zu Unverträglichkeiten. Nachtrag des Nachtrags: Pfeiffendeckel … immer diese Experten am Telefon, klar geht’s: das SSI einfach über einen iFrame in die Seite holen. Ist zwar ein wenig von hinten durch die Brust ins Auge, aber wenn die Fähigkeiten für das eine Fehlen, dann kann man so eine Lösung selber stricken.]

Ich bin ein Vogel. Naja, dann auch wieder nicht, denn SSI nimmt dem Kunden meines Kunden die Kontrolle und er müsste dann doch wieder den Dienstleister beauftragen und das ist etwas, das er ja nicht wollte, sondern wenn eine Änderung erforderlich wird, will er selbst die Profildaten einpflegen können und das Bildmaterial anlegen.

Gefragt ist also ein Plugin, das eine Administration bietet, das eine Liste erstellt aus den Bilder der Galerie, die dann per SSI per PHP-Skript via Platzhalter nachgeladen werden können. Ein schönes Plugin und mit einem verhältnismäßig geringen Aufwand, man könnte auch noch ein Feld integrieren, das dem Kunden das Zeitintervall oder die Methode mitliefert, wie die Bilder (ggf mit Beschreibung) ausgetauscht werden.

Das Plugin kann ganz unabhängig von der Galerie gemacht werden und einfach nur darin eingebunden werden. Hier ist Editland einfach ein schönes Tool. Und als Plugin auf der Todo-Liste. Wunderbar, wunderbar.

Wie markiert man eigentlich externe Links?

tempa wrote this 19:12:

Weil ich heute am Telefon gefragt wurde habe ich die Frage zum Anlass genommen, mal wieder das Webhandbuch der Templaterie zu erweitern. Wie würde eine automatisierte Kennzeichnung in Editland funktionieren? Fangen wir erst einmal mit dem Pluginplan an:
Pluginplan
Vorab sollte man sich noch einmal die funktionsweise von Editland und Plugins vor Augen führen:
Plugins in Editland einbinden und nun halten wir uns vor Augen dass Editland das Template zeilenweise abarbeitet und damit zunächst einmal das Plugin abarbeitet, wenn er auf einen entsprechenden Platzhalter trifft. Noch ohne PHP-Code ist dieser Plan nun auch im Webhandbuch: Externen Linkmarker per PHP in Editland setzen

Hat man seinen Plan soweit fertig, dann beauftrage ich die PHP-Programmiererin Claudia Reiser (Sie hat schon viele Plugins für Editland gefertigt.). Man kann auch eine CSS-Lösung wählen. Aber Achtung für den IE benötigt man Javascript. Ryan Brill: Externe Links kennzeichnen mit Selektoren (en).

In Editland gibt es dann noch die Hand-am-Arm-Methode. Diese ist sehr einfach realisiert und man kann in Editland integrierte Funktionen nutzen. Man verwendet hierfür die Funktion XtraKlassen und führt über die Datei xtraclasses.txt im Template-Ordner eine Klasse für externe Links ein. Dann muss der User externe Links über Schriftstile in der Lasche der Fernbedienung den Link kennzeichnen.

Navigation einmal anders

tempa wrote this 13:00:

Stu Nichols CSS-Navigation extrem
(via Basicthinking)

Natürlich habe ich sofort überlegt, ob man nicht … aber für die Templaterie ist diese Navigation nur dann etwas, wenn man dafür eine separate Menüverwaltung schreibt, es sei denn man nähme den Menütitel und verwende diesen zweifach, dann könnte man mit ein wenig umschreiben von Menupart 1 auch dieses Menü in ein Template integrieren und mit Editland unabhängig vom der Agentur selbst pflegen. (mehr …)

Was ist ein Template

Robert Basic wrote this 16:25:

wieso spricht Silke immer von Templates? Und was ist die Templaterie? Silke?

::Silke aka tempa::
Templates oder auch Das Template ist aus dem Englischen abgeleitet und bedeutet Vorlage, Schablone.
Es ist also ein Muster oder Raster für eine Website. Das Template bestimmt, welche Farben in dem Template erscheinen, ob immer oben eine Stadtansicht zu sehen ist, oder wie hier in diesem Template unten rechts links ein lächelndes Pärchen.
 
Ein Template oder besser gesagt ein Webtemplate, denn in diesem Fall bezieht sich das wirklich nur auf Internetseiten, sogenannte Homepages, kann ganz unterschiedlich aussehen. In der Templaterie sind das einzelne HTML-Seiten mit CSS, die durch spezielle Platzhalter mit Editland zusammenarbeiten. Dabei muss man darauf achten, dass Nutzer damit sehr flexibel sind. So ein Template muss immer gut aussehen, ob nun der Benutzer wenig oder viel Text schreiben möchte.
 
Das macht die Arbeit herrlich anspruchsvoll.

Antworte ruhig mal hier im Text, mir machen jetzt auf collaborative writing via blogging. Wenn ich DAU was nicht verstehe, sage ich es Dir, auch im Text.

Ich habe das Template für dieses Blog nun für diesen Beitrag angepasst. So muss ich nicht jedesmal meinen Namen vor meinen Beitrag schreiben, durch die veränderte Farbe sieht man sofort wer schreibt. dazu existieren jetzt drei Klassen. So ein Template kann auch solche Module enthalten, bei der man z.B. die Schriftfarbe je nach Schreiber verändert. Das geschieht hier nun halbautomatisch, könnte aber auch voll automatisch erfolgen.

Der Webadmin: ein nützlicher Helfer

tempa wrote this 11:40:

Juppieh. Das hatte meinen Editland-Installationen [-1-] [-2-] [-3-] [-4-] schlicht noch gefehlt. Einfach einmal kurz via Browser Dateirechte verändern, oder in einer Datei eine Zeile Code korrigieren. Schnickschnack hinzufügen oder auch kurz mal vom Browser wieder etwas löschen, das wwwrun gehört. Das ganze gibt es für 68KB und 0,00 Euro bei Daniel Wacker. Dafür ganz ganz ganz viele Kudos an ihn.

Webadmin

Aber Achtung. Beim Einsatz nicht vergessen einen Passwortschutz auf das Verzeichnis zu legen, in dem der Dateimanager „Webadmin“ liegt. Das ist der einzige kleine Wehrmutstropfen. Der Dateimanager kümmert sich darum nicht selbst drum. Überhaupt kommt man mit dem webadmin recht weit herum. Hat man die Datei ersteinmal starten dürfen, wird man nicht mehr mit Passwörtern behelligt und kommt auf dem gesammten Webpaket herum, gleichgültig wie die Domains per Confixx konfiguriert sind.

Macht nichts. Editland kümmert sich beim admin-Ordner ja drum und dort ist es gleichermaßen wichtig. Jedenfalls macht mir das das Leben gleich dreimal leichter.

Das mit dem „auf keinem Webspace fehlen“ im Titel musste ich zurücknehmen. Bei dieser neuen Zugänglichkeit, ist das nicht jedermans Sache.

Recent Comments:

  • Silke schümann { Du warst auf dieser Seite: Step1 zur Archiv-Thumbgalerie via Custom fields Marke Eigenbau http://templaterie.de/blog/931/step1-zur-archiv-thumbgalerie-via-custom-fields-marke-eigenbau/ Hier war ich noch am Basteln. Ich fürchte meine PHP-Kenntnisse sind... } – Aug 26, 9:29 AM
  • Andreas { Hey, ich habe den Code wie oben benutzt und auch $dgal = get_posts('category=1′); on der richtigen Zeile eingesetzt nur bei mir läufts immernoch nicht. Kann... } – Aug 26, 3:20 AM
  • Fred { "wer Smarty lernt, kann tatsächlich gleich auch PHP mitmachen, ich hatte es eine zeitlang auch eingesetzt, aber jetzt mach ich es wieder auf meine art... } – Jan 06, 7:14 PM
  • Silke Schümann { Das klingt nach einem Syntaxfehler in der ersten Zeile. Anführungszeichen korrekt? Und das Plugin funktioniert nur innerhalb von Editland. Die index.php ausserhalb von Editland aufzurufen... } – Jun 18, 3:40 PM
  • Jörg { Hallo, ich habe die index.php im ersten Abschitt Nr. 3 beschrieben, angelegt. Beim Aufruf der Seite wird folgende Fehlermeldung angezeigt: Parse error: parse error, unexpected... } – Jun 18, 3:14 PM
  • Michael { Gern geschehen 😉 } – Mai 29, 2:31 PM
  • Silke Schümann { Jepp. Das war's: ES tut! Lösung ist nun in einem eigenen Beitrag: Step1 zur Archiv-Thumbgalerie via Custom fields Marke Eigenbau Fertig und betriebstüchtig! 🙂 } – Mai 29, 1:25 PM
  • Michael { Wie wäre es, wenn Du die Zeile $dgal = get_posts('category=1'); auslagerst und den Rest in eine Funktion packts, der Du $dgal übergibst. Das wäre auch... } – Mai 29, 12:45 PM
  • Silke Schümann { Ich ziehe diees Variante ebenfalls vor, dovh wenn ich Code übernehmen, dann ändere ich hierfür nicht extra. Es dürfte gehzpft wei gesprungen sein, welche man... } – Mai 29, 2:00 AM
  • Ulf { ich würde bei der Syntax für Schleifen konsequent die C-ähnliche Variante mit geschweiften klammern nehmen, nicht die alternative mit Doppelpunkt und "endwhile" bzw. "endforeach". } – Mai 29, 12:00 AM
  • Silke Schümann { Ich habe ich http://franchie.de die Thumbs in der Sidebar erfolgreich ausgelesen. Ansonsten ist die Test-Umgebung unter 1a-test dot de / blog Ich will diese Adresse... } – Mai 28, 11:37 PM