Suche nach "index.php"

MS IIS und Textpattern

Vorhin habe ich Textpattern auf einem Microsoft Internet Information Server installiert und es klappte völlig reibungslos, sogar die Image Angelegenheiten funzen bis auf die Bearbeitung von GIFs.
Zur Zeit sind allerdings nur hässliche permanente Links mit Query möglich.

Wenn sich ein Verantwortlicher findet, der in der php.ini – ich habe keinen Zugriff auf’s Document Root – ‘cgi.fix_pathinfo’ auf 1 und ‘cgi.force_redirect’ auf 0 (Manual) setzt, sind wohl auch halbwegs akzeptable URLs möglich. Dazu muß man dann einfach unter Einstellungen/Webadresse noch ein ‘index.php’ an den bestehenden Wert anhängen und das gewünschte angenehme ‘Schema der URLs’ auswählen. Das Spielchen kann man auch treiben, wenn man bei einem Billighoster kostengünstigen Webspaceanbieter kein mod_rewrite zur Hand hat.

Im Endeffekt kommen dabei URLs wie ’/index.php/section/article’ oder ähnlich bei raus. Das ist auf jeden Fall schöner als ’/index.php?id=xyz’.

Im Großen und Ganzen bin ich über die einfach Installation sehr erfreut. Habe ja ein wenig gebangt sonstwas anstellen zu müssen.

Bullet Journaling

I recently learned about bullet journaling (WTF Is A Bullet Journal And Why Should You Start One? An Explainer) for the first time. I first thought of it as a mixed bag. Ideas like having an index on your notes is just common sense. How should one have a proper notebook without page numbers and a useful index. But the ideas of different type of logs, individually scaled calendars and lists/logs totally drew my attention. I always disliked common weekly or daily calendars or diaries for their shortcomings. Either there is too much space for a period or simply not enough and both are lacking of a clearly arranged of monthly overview. Or maybe they are at the wrong place. The last year I used the Moleskine Weekly Horizontal Planner and it totally lived up the previously mentioned issues although it is one of the better weekly planners I have had.

weiterlesen …

wie Quecksilber

Ja sowas saugt, ich wie?!

Es wird wohl mit den “Quicklinks” unter linkdump.de weitergehen, das nette kleine Archiv dieses Blogs bleibt bestehen und ggf. wird es noch den einen oder anderen Eintrag in der Kategorie blosxomedit geben. Die Adresse des neues Feed lautet: http://linkdump.de/rss.xml.

Der Linkdump basiert im Prinzip auf Blosxomedit, allerdings werden die Daten in einer MySQL Datenbank abgelegt. Drei Script index.php, archive.php und rss.php sorgen für die Darstellung.

Wenn der Code akzeptable From angenommen hat, werde ich in an dieser Stelle veröffentlichen. Yep! Just another PHP/MySQL Weblogscript. Viele Feature sind nicht geplant, einfaches Interface, wenige Screens, simple Tempaltes, schnelles Bloggen, Kommentare, RSS Feed, weblogs.com-Ping, Aufruf als Bookmarklet.

LiveSearch für Textpattern

Eine Livesearch Implementierung mit dem BitFlux Javascript ist auch für Textpattern relativ zügig gemacht.

Mit folgender livesearch.php erhält man den text/xml Output. Die Datei wird ähnlich wie der RSS oder ATOM Feed in /textpattern/publish.php innerhalb der Funktion preText() eingebunden. Etwa ab Zeile 106, nach dem include von /publish/atom.php folgende Zeilen einfügen:

if( gps('ls') ) {
  include txpath.'/publish/livesearch.php';
  exit(livesearch( gps('ls'),20 ));
}

Jetzt bleibt noch der Aufruf aus dem Javascript heraus anzupassen. Etwa in Zeile 134 in der Datei livesearch.js findet man eine Zeichenkette wie livesearch.php?s=, die einfach durch /?ls= ersetzt wird. Noch ein geeignetes Suchformular wie auf der Wikiseite erläutert im gewünschten Template einfügen und der Drops ist gelutscht.

Falls ein Auszug aus dem Body der gefunden Artikel gewünscht ist, kann die Varibale $doExc in livesearch.php:26 auf TRUE gesetzt werden.

Live anzusehen in meinem Txp Blog.

PHP Update auf 5.1.2

Hmm… ich habe soeben eine Umstellung auf PHP 5.1.2 vorgenommen. Bislang sind mir keine Probleme aufgefallen. Falls sich doch noch irgendwo ein Fehler breit macht, bitte ich um eine kurze Nachricht.

Und warum: PHP 4 bricht mich aus vollen Rohren an und ich wollte das System endlich mal aufräumen und bei der Gelegenheit endlich einen vernünftigen objektorientierten Ansatz nach dem MVC Muster (Understanding MVC in PHP) wählen. Und dabei bietet sich ein Update auf PHP 5 doch irgendwo an. Und ich kann nicht mehr ohne mysqli leben.

PH 4.3.0, CLI, PHP-GTK

Seit ein paar Tage kann man PHP 4.3.0 bekommen, neben einigen sinnvollen Verbesserungen/ Erweiterungen:

This version finalizes the separate command line interface (CLI) that can be used for developing shell and desktop applications (with PHP-GTK).

Ich hab das Gefühl die meinen das erst?! Ich würd mir lieber den Schwanz abschneiden, bevor ich anstelle von Perl, AWK oder sed PHP als Scriptsprache für Shell oder Desktop benutzen würde. Nicht nur weil ich Perl so entsetzlich viel besser kennen würde als PHP, sondern aufgrund der Tatsache, daß GTK-Perl auch schick mit GNOME kann.
Leider läuft GTK-Perl noch nicht mit GTK+ 2.x. Die Ursache mag am anderen Signal Handling in GTK+ 2 liegen.

Nein, ich bin nicht betrunken und ich meine natürlich meinen Zopf;)

Besuchbar

Jetzt kann ich mit dieser Seite wieder rundherum wohlfühlen. Es gibt wieder eine Suche und auch der Kategorie- und Archiv-Index sind wieder verfübgar.
Natürlich greppe ich nicht durch die Textfiles sondern suche in einem Index in einem MYSQL Table, welcher regelmäßig von einem PERL-Script gefüttert wird. Kategorie und Archiv funktionieren im Prinzip ähnlich.

Ich weiß, interessiert keine Sau 

Google Mail, Imap, Mutt und das Leerzeichen

Die Konfiguration von mutt um per IMAP auf Google Mail zuzugreifen ist ja nun denkbar einfach:

set folder=imaps://imap.gmail.com:993
# nur notwenig, wenn Nachrichten nicht
# per smtp.gmail.com versandt werden
# set record="imaps://imap.gmail.com/[Google Mail]/Sent Mail"
set postponed="imaps://imap.gmail.com/[Google Mail]/Drafts"
set imap_user="Google@Mail.Adresse"
set imap_pass="Password"
set certificate_file=~/.mutt/certificates
set spoolfile = +INBOX
set header_cache="~/.mutt/cache/headers"
set message_cachedir="~/.mutt/cache/bodies"

Die Handhabung von Google Mail per Imap weicht allerdings etwas von der Norm ab, um mit dem Webclient konform zu bleiben. So werden Nachrichten gelöscht indem sie nach [Google Mail]/Trash verschoben werden oder die Markierung als SPAM erfolgt durch Verschieben in den Ordner [Google Mail]/Spam. Also was bietet sich mehr als als ein Makro dafür einzurichten.
Etwa so:

macro index ",p" \\
s="imaps://imap.gmail.com/[Google Mail]/Trash\\n" \\
"copy to trash"

Aber nein! Was bei der record oder postpone Variable noch funktioniert, schlägt bei einem Makro fehl. Das Leerzeichen in „Google Mail“ wird beharrlich ignoriert da mutt bei der manuellen Eingabe einer Mailbox – nichts anderes macht das Makro – keine Leerzeichen akzeptiert und möchte daher unentwegt das Verzeichnis [GoogleMail]/Trash anlegen.

Jetzt kann man sich Gedanken machen wen man nun ankotzen möchte. Google für das Leerzeichen oder mutt für’s Verweigern. Auf jeden Fall ist es schade, denn das hätte den Komfort beim Umgang mit Google Mail via Imap enorm gesteigert. Hat jemand eine Idee?

Update: Mit Tab Completion als Workaround bietet sich, wenn es die Namen der Tags erlauben, folgende Lösung an:

macro index ",p" \\
s="[Google\\tTrash\\ny" \\
"copy to trash"

Whitelist mit procmail und mutt

Trotz Spamassassin habe ich mich entschlossen vor dem Spamfilter eine Whitelist Filterung meiner elektronischen Post zwcks gezielterer Ordnung durchzuführen.

Der procmail Teil ist relativ einfach:

FROM=`formail -rtzxTo:`
:0
* ? /usr/bin/fgrep -qxis "$FROM" $HOME/.procmail/privat
{
    LOG=" privat: $FROM is in privat "
    :0:
    privat
}

privat enthält dabei die Liste der Absenderadressen, deren Korrespondenz ich im Order privat abgelegt haben möchte.

Damit ich mir bei der Pflege der Liste keine Wolf tippe habe ich mir folgende Makros für Mutt angelegt:

macro index \co \
  "|grep "^^From:" \
  | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'  \
  >> ~/.procmail/privatfile"  \
	"add author to privatfile"

macro pager \co \
  "|grep "^^From:"  \
  | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'  \
  >> ~/.procmail/privatfile"  \
	"add author to privatfile"

CTRL+O im Index oder Pager fügt die Absenderadreese an die Datei ~/.procmail/privatfile an.

Obsidian mit File Properties

Ich habe eine ganze Weile nichts zu dem Thema Notizen App & CO geschrieben. Nachdem ich mit Craft auch nicht warm geworden bin, habe ich Anfang 2022 Obsidian ausprobiert. Und nachdem ich mich mit dem Zettelkasten Prinzip auseinandergesetzt habe, erschien mir Obsidian die geeignete Software zu sein um dort jegliche Art von Notiz festzuhalten.

Außerdem habe ich großes Gefallen an dem Daily Notes Plugin gefunden. In den Daily Notes kommt erstmal alles herein, was ich arbeitstechnisch gemacht habe, alles was ich mir merken muss oder irgendwie festhalten möchte. Anschließend werte ich die Notizen aus und mache daraus kurze und prägnante permanente Notizen mit meinen eigenen Worten. Das Ganze funktioniert für mich seit anderthalb Jahren ganz gut.

Unlängst wurden Properties mit ordentlicher UI in Obsidian eingeführt.

Endlich.

Properties werden in einer YAML artigen Struktur im Kopf der Datei festgehalten:

---
tags:
  - tee
  - sencha
  - GrünerTee
art: Sencha
index: "[[Tee Index]]"
zubereitung: 1-2 TL 200ml 65°C 60s 10s 10s 10s
---
Weich und angenehm. Mein momentaner (Frühling, Sommer 2023) Frühstückstee. 

WordPress Permalink Problem

Ich hatte Gestern ein Problem mit WordPress und mod_rewrite basierten Permalinks. Die Rewrite Regeln werden ausgeführt, aber es wird keine Seite ausgeliefert. Im WordPress Codex (Using Permalinks) bin ich auf einen Hinweis auf die PHP Bugs 35096 und 35059 gestoßen, die mein Problem exakt beschreiben. Das Problem tritt in Verbindung mit Apache 2 und PHP 4.4.1 auf, so wie XAMPP/OSX 0.5 zZ. ausgeliefert wird.

Die Lösung ist – wie in so vielen Fällen – sehr einfach, ein Update. Oder schlicht auf PHP5 Umstellen, wie ich es gemacht habe. Bisher habe ich keine Probleme mit WordPress unter PHP 5.0.5 feststellen können.

Und wie kommen ich dazu? Ich versuche vermehrt unter OSX zu arbeiten, und da ich keinen weiteren rauschenden Rechner neben dem Mini einschalten möchte übertrage ich nun meine Entwicklungsumgebung auf den Kleinen. Für Apache & Co. benutze ich XAMPP, weil’s so nett einfach ist, da es mit dem größten Teil der Software daherkommt, die ich benötige. Perl / mod_perl und PHP.

Textpattern: Tagging

Ich glaube langsam fang ich an zu nerven. In letzter habe ich häufiger mal was mit Textpattern zu tun und es auch mal wieder lokal installiert, als internes Projektlog für mich.

Irgendeinen Sinn muß ich dem Mac mini doch geben:)

Gibt es eigentlich mittlerweile eine vernünftige Unterstützung für Tagging unter Txp? Falls nicht, kann es recht einfach nachgerüstet werden. In zwei Schritten:

Für einen praktischen, globalen Einsatz ändert man textpattern/publish.php an zwei Stellen, um Keywords als Tags zu nutzen.

case urldecode(strtolower(urlencode(gTxt('author')))):
    $out['author'] = (!empty($u2)) ? $u2 : ''; break;
    // AuthorID gets resolved from Name further down

case urldecode(strtolower(urlencode('tag'))):
    $out['tag'] = (!empty($u2)) ? $u2 : ''; break;

case urldecode(strtolower(urlencode(gTxt('file_download')))):
    $out['s'] = 'file_download';
    $out['id'] = (!empty($u2)) ? $u2 : ''; break;

Den mittleren Case ab Zeile 259 ergänzen.

//Allow keywords for no-custom articles.
$keywords = "";
if ($keywords) {
    $keys = split(',',$keywords);
    foreach ($keys as $key) {
        $keyparts[] = " Keywords like '%" .
            doSlash(trim($key))."%'";
    }
    $keywords = " and (" . join(' or ',$keyparts) . ")";
}

//Allow tags for no-custom articles.
if ($tag) {
    $keywords .= " and Keywords REGEXP '[[:<:]]" .
        doSlash(trim($tag)) .
        "[[:>:]]'";
}

Ab ca. Zeile 580 den unteren Codeabsatz ergänzen.

Dazu gibt es dann noch zwei Plugins, um eine Tagcloud zu erzeugen und bei jedem Eintrag benutzte Tags anzuzeigen.

Den Änderungen für publish.php ist es egal, welches Trennzeichen zwischen Tags benutzt wird. Den Plugins wird das Trennzeichen mit Hilfe des Attributs ’separater‘ mitgeteilt. Default ist ein Leerzichen.

Das Attribut ‚base‘ gibt die Linkbasis für Tags an. Default ist ‚tag‘. Falls eine andere Basis gewünscht wird, muß das auch in der publish.php angepasst werden, eg. case urldecode(strtolower(urlencode('basis-fuer-tags'))):

Mit den Attributen ‚threshold‘ und ’scale‘ kann man Einfluß auf die Tagscloud nehmen. ‚threshold‘ gibt ein Mindestauskommen von Tags an. ’scale‘ hat ein Fluß auf die Skalierung.

Hinweis: Der Aufbau der Tagscloud liest alle Einträge mit Keywords und durchläuft zwei Schleifen um die Wolke zu erzeugen. Mit der Zahl der Einträge wird der Vorgang rechenintensiv und je nach Hosting sollte man evtl. darauf verzichten die Wolke auf jeder Seite anzuzeigen.

Eine Weiterentwicklung ist evtl. nicht ausgeschlossen. 🙂

phpThumb()

phpThumb() ist ein nettes Tool zur Erzeugung von Thumbnails. Der Aufruf erfolgt entweder innerhalb eines IMG-Tags, e.g.

src="phpThumb.php?src=bild.jpg&w=120"

oder als Objekt innerhalb aus dem PHP Code heraus:

require_once('phpthumb.class.php');
$phpThumb = new phpThumb();
$phpThumb->src = $sourceFilename;
$phpThumb->GenerateThumbnail();
$phpThumb->RenderToFile($filename); 

Sehr einfach, sehr praktisch. Auf der Homepage des Projekts gibt es eine Demoseite zum Ausprobieren der verschiedenen Parameter.