Viele Textpattern-Nutzer kennen das Problem eventuell: Man möchte etwas in seinen Blog implementieren oder etwas bestehendes anpassen, und muss dafür nur allzu oft im Live-System herum werkeln. Dauern solche Arbeiten vielleicht doch etwas länger, oder muss man seine Arbeiten kurzfristig unterbrechen, so bekommt das normale Publikum evtl. unfertige Ausgaben oder zerstörte Designs zu Gesicht.

Eine Möglichkeit wäre natürlich, vor einer solchen Änderung ein Backup der Dateistruktur und der Datenbank zu machen, das ganze dann lokal aufzuspielen, die Anpassungen vorzunehmen und danach wieder aufs Livesystem aufzuspielen.

Abhilfe kann hier das Textpattern-Plugin rvm_privileged schaffen. Das Plugin beinhaltet unter anderem das Conditional-Tag <txp:rvm_if_privileged />, womit bestimmte Inhalte innerhalb des Conditionals nur dann ausgegeben werden, wenn der Besucher der Seite auch im Textpattern-Backend gerade eingeloggt ist. Möchte man nun etwas an seiner Seite verändern, so könnte dies in Zukunft z.B. so aussehen:

<txp:rvm_if_privileged>
    <div class="neuerungen"><p>Hier kann alles herein was nur ich sehen soll.</p></div>
</txp:rvm_if_privileged>

rvm_if_privileged kann dabei in Artikeln, Bausteinen und Seitenvorlagen ohne Einschränkungen eingesetzt werden.

Mit diesem Plugin lassen sich aber auch andere nützliche Dinge einstellen, wie z.B. Edit-Links zu jedem Artikel in der Live-Umgebung zu erzeugen…

Dazu könnte man z.B. folgenden Code in seinem Artikelbaustein platzieren:

<txp:rvm_if_privileged>
    <p><a href="/textpattern/?event=article&step=edit&ID=<txp:article_id />">Artikel editieren</a></p>
</txp:rvm_if_privileged>

Nun hat man im eingeloggtem Zustand auch unter jedem aufgerufenem Artikel einen direkten Link um diesen schnell zu editieren.

Möchte man unfertige Bereiche einer Seite vor ungewollten Blicken fremder Schützen, so bietet das Plugin übrigens auch direkt <txp:rvm_privileged /> als neuen Tag an. Ist dieser Tag in einem aufgerufenem Template eingebunden, so bekommt ein nicht eingeloggter Nutzer einen 403: Fordbidden als Antwort.


Google Maps ist wohl mittlerweile zu einer der wichtigsten Webapplikationen im Web mutiert, und das aus gutem Grund.

Neben zahlreichen Webseiten die sich der API von Google Maps bedienen, gibt es nun auch eine äußerst praktische Firefox-Erweiterung die auf diesen Dienst aufbaut: Minimap Sidebar

Minimap Sidebar legt sich, wie der Name schon vermuten lässt, als Sidebar in Firefox ab. Findet man nun beispielsweise auf einer Seite eine Adresse oder Koordinate, so kann man diese durch Drag & Drop in die Sidebar sich in Google Maps anzeigen lassen. Möchte man die Sidebar nicht ständig geöffnet haben, so lässt sich nach markieren einer Adresse die Sidebar auch über das Kontextmenü aufrufen.

Das Plugin bringt zudem eine History mit, in der die letzten Adressen automatisch abgespeichert werden. Wegpunkte können zudem aus GPX,KML, GeoRSS und dem hauseigenem Format (.minimap) importiert, und existierende Wegpunkte als GPX, KML, CSV und .minimap wiederum exportiert werden.

Neben der Googlemaps Straßenkarte und Satellitenkarte kann das Plugin auch auf eine Terrainkarte, Google Earth, OpenStreetMap und OSMarender zurückgreifen.

Für Geocacher besonders interessant ist, das in der oberen rechten Ecke immer die aktuellen Koordinaten des zentrierten Fadenkreuzes angezeigt und kopiert werden können.

Das einzige was mir bisher im Plugin noch fehlt ist ein eingebautes Pedometer, denn hier muss ich bisher immer auf das Gmaps Pedometer zurückgreifen

Für diejenigen die wie ich häufig mit Google Maps zutun haben ist die Minimap Sidebar sicherlich ein wirklich nützliches Tool.

Danke an Martin für den Hinweis!


Für jQuery gibt es einen ganzen Batzen an Plugins, und einige davon braucht der fleißige Webentwickler auch von Zeit zu Zeit, z.B. die Thickbox oder iFixPng2.

Manchmal findet man jedoch auch sehr innovative und originelle Plugins, so z.B. jParallax. Parallax ermöglichst es dem User eine Art 3D-Gefühl zu vermitteln, und das ganz einfach durch die Überlagerung mehrerer 2D-Ebenen und der Möglichkeit diese mittels der Maus zu bewegen.

So hat man z.B. die Möglichkeit mehrere Fotos freizustellen und wie auf einer Bühne hintereinander zu platzieren um später mit der Maus den Viewport dynamisch versetzen zu können.

Dabei zeigen die Demos gleich mögliche Anwendungsgebiete, so z.B. eine Karte, einen Bergsteiger oder auch andere Spielereien.

Das Prinzip ist ähnlich wie die Verschiebung der Hintergrundgrafiken auf der Webseite von Silverback. Sobald man das Browserfenster horizontal erweitert oder verkleinert kommt ein räumliches Gefühl auf.

Das Plugin ist sicherlich nichts für den täglichen Gebrauch, doch eventuell findet sich ja die eine oder andere nützliche Verwendung. Vielleicht kommt es auch ganz gut als Gimmick in Headern die auf den ersten Blick zwar statisch aussehen, bei einem Mouseover dann aber zum Leben erweckt werden…

via: Webappers


Mhm der Titel klingt wohl etwas verwirrend, aber egal. Ich sitze gerade an einem kleinen Statistiktool in dem ich den beliebten Datepicker aus jQueryUI benutze.

Das “Plugin” ließ sich auch leicht installieren, doch ich wollte mir nach der Auswahl des jeweiligen Datums den Klick auf den Absende-Button für das Formular sparen, da es in dem Formularfeld eh nur die Auswahlmöglichkeit für den jeweiligen Tag gab.

Also kurz in der Dokumentation gewühlt und dabei auf onSelect gestoßen, Code der also ausgeführt wird sobald man ein Datum im Datepicker ausgewählt hat.

Zusammen mit dem Code zum automatischem Absenden kann die Verwandlung eines Inputs in eine komplexe Datumsbox daher so aussehen:

$(document).ready(function(){
	$("#datepicker input.date").datepicker({
		onSelect: function(dateText){
			$(this).parent("form")[0].submit();
		}
	});
});

Also eigentlich relativ einfach. Das Snippet sucht nach dem Klick auf ein Datum das übergeordnete Form-Element und schickt dieses automatisch ab. Hach, jQuery ist einfach toll :)


DL: htn_antispam

Ich habe bisher überall prophezeit das Textpattern im Prinzip vollkommen unempfindlich gegenüber Kommentar-Spambots ist. Nun, die Zeiten ändern sich, und so sind auch die ersten Spamtools anscheinend auf Textpattern trainiert wurden und überwinden nun die vorher so oft gelobte “Vorschau-Hürde” im großen Stil.

In den letzten Wochen war daher auch in Textpattern-Blogs mit vermehrtem Spamaufkommen zu rechnen, was teilweise schon auf die nerven ging.

Ich informierte mich daher ein bisschen, und fand dabei zwei Quellen zur effektiven Spamvermeidung, die ich kurzerhand in ein separates Textpattern-Plugin packte. Heraus kam dabei htn_antispam.

Kompletten Artikel lesen...


jQuery-Logo

Zum Ende des Wochenendes noch ein kleiner und wahrscheinlich für erfahrene Programmierer bereits bekannter Kniff zu meinem Lieblingsframework jQuery.

Viele kennen das Problem: Man betreibt eine Seite mit vielen unterschiedlichen jQuery-Plugins oder möchte der Übersichtlichkeit halber seinen Code in mehrere Dateien auslagern. Nun ist jedoch oft der Fall, dass man so manches Plugin oder Script nur auf einigen Unterseiten benötigt. Je nach Seitengröße und Masse des Quelltextes kippt man dem Besucher also oft Dateien auf den Ladebalken, die er in vielen Fällen wahrscheinlich gar nicht braucht. Man kann die Einbindung der einzelnen Dateien natürlich auch Serverseitig über IF-Abfragen steuern, dass ist jedoch ziemlich unflexibel und mühselig.

Nun bin ich heute über die jQuery-Funktion getScript gestolpert. Die Funktion kann aus dem Code heraus an jeder beliebigen Stelle also zusätzliche JavaScript-Dateien abrufen und parsen. Es ist somit unter anderem möglich beim auftreten eines bestimmten Selektors (und nur dann) ein angelegtes Plugin einzubinden.

In der Praxis könnte das also z.B. so aussehen:

if($("div#accordion").length){
      $.getScript("/js/plugins/jquery.accordion.js");
}

Mit length überprüfen wir einfach ob der beschriebene Selektor irgendwo im DOM vorkommt, wenn ja wird das Plugin geladen und ausgeführt.

Für viele wohl nichts Neues, aber für Einsteiger vielleicht Hilfreich.


Es gibt viele Plugins für Firefox die sehr nützlich und sinnvoll sind. Für mich gehören dazu z.B. so feine kleine Tools wie ColorZilla, Foxmarks oder auch mein aktueller RSS-Reader Brief.

Auf der anderen Seite gibt es aber auch so manches Plugin das uns Webentwicklern dank seiner Sinnlosigkeit ab und an übel aufstößt. Nachdem ich nun schon oft über das Firefox-Addon NoScript gestolpert bin wollte ich doch nun auch mal wissen was sich dahinter überhaupt versteckt.

Zusammengefasst kann man sagen das NoScript erstmal alle möglichen Plugins in der Standardkonfiguration blockiert. Also keine JavaApplets, keine JavaScripts, kein Flash…. nichts also, pures HTML und CSS. Ok, Java wird auch aus meiner Sicht zu oft auf alten, mit Katzencontent gefüllten Webseiten für sinnlose Effekte missbraucht, das sehe ich ein. Doch JavaScript von vornherein für alle Webseiten zu sperren ist aus meiner Sicht totaler Quatsch. Ich hatte mit Firefox und JavaScript noch nie Probleme in Punkto Sicherheit, und auch der integrierte Popup-Filter funktioniert bis auf wenige Ausnahmen tadellos. Warum also von vornherein alle Scripte aussperren und dann auf Wunsch für einzelne Seiten freizuschalten?

Ich freue mich wirklich über jeden weiteren Nutzer der sich für JavaScript entscheidet (sofern er das denn selber bestimmen kann), solch ein Plugin wie NoScript hingegen arbeitet irgendwie rückschrittlich.

Zugegeben, man kann das Prinzip des Plugins auch umkehren: Die Ausführung von Scripten wird also generell erlaubt und dann für die aktuelle Seite explizit gesperrt. So und nicht anders macht das Plugin für mich noch Sinn. Stört einen etwas an einer Seite kann man diese auf die Blacklist setzen. Leider wird diese Funktion im Menü jedoch mit dem Hinweis “nicht empfohlen” angegeben und dürfte den unwissenden User daher erstmal abschrecken. Von vornherein allen Webseiten zu misstrauen ist doch aber irgendwo der falsche Weg, oder?


Ich hoffe hier entsteht nicht der Eindruck ich würde nur noch über meine beiden Lieblingsframeworks schreiben, doch gerade bei jQuery passiert in der letzten Zeit doch eine ganze Menge.

jQuery UI ist die Weiterentwicklung der vielleicht dem ein oder anderen bekannten Erweiterung Interface Elements. Das Release wurde eigentlich für gestern, also Sonntag den 16.09.07 angekündigt, fand jedoch erst vor einigen Minuten den Weg in den offiziellen Weblog. Die Subdomain ui.jquery.com war jedoch schon seit gestern zugänglich.

Auf den ersten Blick macht jQuery UI einen ganz passablen Eindruck. Derzeit stehen den fleißigen Entwicklern folgende Module/Plugins zur Verfügung:

Wer die Interface-Elements kennt, der wird in dieser Liste so ziemlich alles bereits einmal gesehen haben. Leider war es in der Vergangenheit nicht mehr Möglich die Interface Elements wirklich zu nutzen, da diese nur bis zu jQuery 1.1.2 unterstützt wurden. Die Demos von jQuery UI lassen aber vermuten das jQuery UI gerade in der Performance um einiges besser abschneiden dürfte und durch die offizielle Unterstützung auch in Punkto Kompatibilität am Ball bleibt.

Ähnlich wie bei den Interface Elements kann man sich auch bei jQuery UI seine benötigten Module zusammenklicken und herunterladen. Selektiert man alle Module kommt man derzeit auf eine Größe von 60KB (Minidfied, ohne Gzip).

Das liegt natürlich schwer im Magen, doch wer benötigt auf einer einzelnen Seite schon alle Module? Wenn doch, so sind 60Kb für das Mehr an Funktionen aus meiner Sicht dennoch ein Leichtgewicht.

Was neu ist sind die vorgefertigten CSS-Themes für jQuery UI. Derzeit stehen für die Module 3 unterschiedliche Themes zum Download zur Verfügung, die man sich für die eigene Applikation natürlich auch nach belieben anpassen kann.

Ganz nebenbei wurde heute morgen eine kleine Bugfix-Version vom jQuery-Core veröffentlicht, die im übrigen Pflicht zur Verwendung von jQuery UI ist, sofern alles richtig funktionieren soll.

Aus meiner Sicht bringt jQuery UI einen echten Mehrwert für das Javascript-Framework. Die einzelnen Plugins sind, wie man es von jQuery gewohnt ist, sehr leicht nutzbar und können sicherlich in vielen Applikationen sehr nützlich sein. Bleibt nur zu hoffen das nun nicht jede 2. Seite im Netz mit unnötigen Effekten daher kommt :)


Ich weis nicht wie es euch geht, aber ich bekam immer kleine Schweißausbrüche sobald ein Kunde in einem skalierbarem Layout abgerundete Ecken für Boxen oder dergleichen haben wollte.

Nicht dass solche Rundungen nicht schick aussehen würden, doch aus semantischer Sicht bzw. aus Sicht auf Punkto “Wartbarkeit” war das für mich bisher immer ein Graus.

Was sich früher durch monströse Tabellenkonstrukte eh mehr schlecht als recht umsetzen ließ benötigte bis vor kurzem auch bei tabellenfreien Layouts meist bis zu vierfach verschachtelte DIV-Elemente, pro Box versteht sich.

Weil ich eigentlich immer versuche meinen Quelltext so übersichtlich und schlank wie nur möglich zu halten habe ich mich daher bisher oft vor den Rundungen gefürchtet.

Damit macht das gerade entdeckte jQuery-Plugin jQuery Roundcorners Canvas nun anscheinend endlich Schluss. Das Plugin scheint alle Faktoren die man an solch ein Script stellen könnte zu vereinen:

Zum Ladevolumen muss zusätzlich natürlich noch das jQuery-Framework gerechnet werden.

Sicherlich, bei einer einzelnen und relativ festen Box macht das Plugin wahrscheinlich keinen wirklichen Sinn. Soll jedoch eine Box in der breite/höhe flexibel sein und zudem Ihre Farbe evtl. auch einmal schnell wechseln können, so ist das Plugin sicherlich eine echte Bereicherung.

Wo ich noch keine Schlüsse ziehen konnte ist die Performance. In der Demo konnte ich jetzt auf die schnelle keine Geschwindigkeitseinbußen feststellen, aber vielleicht sieht das auf älteren Systemen ja anders aus?


htn_feedstats

Endlich ist es soweit, mein erstes Plugin für das Weblogleichtgewicht Textpattern erblickt heute das Licht der Welt (oder die Bits und Bytes?).

Download: htn_feedstats

htn_feedstats ist ein Plugin zum auslesen der aktuellen Statistiken von Feeds (RSS und Atom) welche bei Feedburner gehostet werden…

Kompletten Artikel lesen...


off. Icon eines RSS-feeds

Nach dieser Möglichkeit habe ich schon lange gesucht. Bisher war man mit Textpattern ja ziemlich eingeengt was die Ausgabe des jeweiligen Contents im Feed anging. Eigentlich konnte man dabei nur zwischen den Formaten Atom und RSS wählen und zudem noch angeben ob (wenn vorhanden) nur das Exzerpt ausgegeben werden soll.

Nun fand ich aber z.B. schon immer die Idee cool, das jeweilige Artikelbild direkt im Feedreader auszugeben, bisher gelang das jedoch nur indem man ein Bild direkt in den Content einfügt, also relativ unschön.

Patrick aus dem Textpattern-Forum hat nun gestern auf meine Anfrage hin ein kleines Mini-Plugin zusammengeschraubt, mit dem man beliebigen Inhalt an den body eines Feed-Eintrags angehangen werden kann.

Ich habe das ganze ein wenig modifiziert, und zwar indem ich nun die Möglichkeit habe, den kompletten Content meines Feed-Bodys frei zu gestalten, und zwar über einen TXP-Baustein.

Dafür muss man einfach in der vorletzten Zeile aus $thisarticle['body'] .= parse($form); nun $thisarticle['body'] = parse($form); machen, und kann das Aussehen des Feed-Bodys nun über den Baustein feed_append frei gestalten.

Mein Baustein sieht derzeit z.B. einfach so aus:

<txp:article_image style="margin: 0.5em;float:right" thumbnail="1" />
<txp:body />

Nun wird also (sofern vorhanden) rechtsbündig in meinem Feed das jeweilige Artikelbild eingebunden. Das ganze könnte man nun beliebig erweitern, z.B. wie viele Kommentare es schon gibt, oder nochmals einen Link zum Artikel manuell einbinden. Gemixt mit ein paar Plugins ergeben sich daraus fast endlose Möglichkeiten…

Ich denke eine wirklich kleine aber feine Lösung die Patrick da schnell mal auf die Beine gestellt hat, ich bin jedenfalls gespannt was aus dem Plugin wird. Für meine Zwecke reicht mir das Plugin in diesem Fall jedoch schon völlig.


Screenshot der Webdeveloper-Toolbar

Wie hab ich heute doch geguckt als mir mein Firefox eine neue Version der Webdeveloper-Toolbar ankündigte und nach einem Neustart meine Lieblingstoolbar doch ganz anders aussah.

Optisch wurden die Icons auf das bekannte Iconpack SilkIcons umgestellt, eine gute Entscheidung wie ich finde. Doch dabei blieb es nicht, auch die Funktionen wurden optimiert und erweitert, und das ganz gewaltig wie ich finde.

Was mir bisher aufgefallen ist, ist ein Optionsmenü bei dem man sich eigentlich die gesamte Toolbar anpassen kann, so kann man nun z.B. weitere Browserauflösungen frei definieren was mir schon einmal ein weiteres Plugin erspart. Weiterhin gibt es nun eine Livevalidierung. Wird diese aktiviert so wird eine weitere Toolbar eingeblendet die einem den jeweiligen Validierungsstatus für CSS, HTML und WAI ausgibt, natürlich immer für die derzeitige Webseite.

Es gibt aber noch mehr tolle Verbesserungen, die ich hier jedoch nicht im Detail aufzählen möchte und kann, probiert euch dieses Must-have-Plugin doch einfach einmal aus.


Endlich habe ich es gefunden, das ultimative Firefox Plug-in zur Bookmarksynchronisation. Foxmarks kann beliebig viele Lesezeichen zwischen mehreren PCs abgleich, und das vollkommen im Hintergrund.

Man meldet sich einfach einmalig bei Foxmarks an, und kann nun unter seinem Account fleißig seine Bookmarks ablegen, sowohl über die Foxmarks Webseite (gut wenn man mal an einem Fremd-Rechner ist) als auch automatisch mit dem Firefox Addon.

Der Clou: Zusammen mit Sage lassen sich somit auch die RSS-Feeds zwischen mehreren Rechnern abgleichen.

Endlich habe ich also nicht mehr das Problem auf Arbeit und daheim unterschiedliche Lesezeichen nutzen zu müssen. Lege ich mir nun ein Bookmark in der Lesezeichen-Leiste ab, so ist es heute Abend an meinem Heim PC auch dort :)

Am Ende möchte ich noch vor einer Erweiterung warnen die mir letztens beim versuch einer Synchronisation alle Bookmarks über den Jordan geschickt hat. Google Browsersync hatte ich genau 2 Stunden im Einsatz. Als mein Internet dann kurzzeitig ausgefallen war und GBS einen abgleich starten wollte hat es einfach mal alle Bookmarks gelöscht, weil sich ja nichts finden ließ.



Blogsuche

RSS-Feeds

Plaste & Plastik

plasteundplastik.de - Das Geocaching-Weblog

Die Kategorien


Netz-Fundstücke


Meta / Propaganda