Mrz 27

Im folgenden Abschnitt wird gezeigt, das man mit OSX 10.7 und der Bordeignen VPN Verbindung gleichzeitig das Internet nutzen kann.

 

Nach der erfolgreichen VPN-Verbindung mit dem Fremdnetz, öffnen wir das Terminal und geben Folgendes ein:

 

sudo route -nv add -net 10 -interface utun0
sudo route change default 192.168.1.1 

 

Für die Option -net wird der Bereich bzw. die Interne IP des Fremdnetzes angegeben. z.B.: sudo route -nv add -net 192.168.88.6 -interface utun0

Für die Option change default wird unserer Gateway eingetragen. Wie man oben sieht!

 

Das alles kann man in einem Script sich schön anpassen.

z.B.:

/Users/mhaase/bin $ cat vpn.sh
#!/bin/bash if [[ $EUID -ne 0 ]]; then
echo “Run this as root”
exit 1

fi route -nv add -net 10 -interface utun0
route change default 192.168.1.1

 

Jul 24

Das Smarty Google+ Plugin ermöglicht euch den +1 Button von Google in eure Smartyseite einzubinden. Einfach, und komplett anpassbar. (English version here)

 

Ladet euch Die Datei mit dem google+Plugin (smarty_googleplus_plugin.zip) runter und packt Diese aus. Kopiert die File function.googleplus.php in das Pluginverzeichnis von Smarty. Damit wäre das Plugin startklar.

In eurem Template ruft ihr das Plugin wie folgt auf:

 

{googleplus now=enable size=small lang=de count=true}

 

Die Parameter haben folgende Bedeutung:

SIZE: small, medium, standard, tall (Größe des Buttons.)
LANG: Sprache (Nach dieser Beschreibung findet ihr die Länderliste.)
COUNT: true, false (Legt fest ob die Anzahl der Klicks angezeigt werden soll)
NOW: enable (Aktiviert den button)
CSS: classname (Ein Class-Namen für eure css vergeben. Standartclasse ist “uniq_googleplus”)
HREF: url (Eine Seite vergeben für die gewertet werden soll. Wird kein Wert vergeben ist es die url von der Seite wo der Button sitzt.)

Ländercodes

Arabisch ar
Bulgarisch bg
Katalanisch ca
Chinesisch (vereinfacht) zh-CN
Chinesisch (traditionell) zh-TW
Kroatisch hr
Tschechisch cs
Dänisch da
Niederländisch nl
Englisch (UK) en-GB
Englisch (USA) en-US
Estnisch et
Filipino fil
Finnisch fi
Französisch fr
Deutsch de
Griechisch el
Hebräisch iw
Hindi hi
Ungarisch hu
Indonesisch id
Italienisch it
Japanisch ja
Koreanisch ko
Lettisch lv
Litauisch lt
Malaiisch ms
Norwegisch no
Persisch fa
Polnisch pl
Portugiesisch (Brasilien) pt-BR
Portugiesisch (Portugal) pt-PT
Rumänisch ro
Russisch ru
Serbisch sr
Slowakisch sk
Slowenisch sl
Spanisch es
Spanisch (Lateinamerika) es-419
Schwedisch sv
Thailändisch th
Türkisch tr
Ukrainisch uk
Vietnamesisch vi

Viel Spaß!

Jun 10

Hallo,

Ich habe mir mal erlaubt die Smarty-Pagination von Monte Ohrt http://www.phpinsider.com/php/code/SmartyPaginate/ zu erweitern. Die Smarty-Pagination ist eine feine Sache, will man aber die Spalten sortieren, so fern man welche hat, müsste man mit normalen PHP dazwischen funken. Aber damit das alles schön schnuckelig bleibt und vor allem dann auf jeder Seite geht, zeige ich euch Heute wie ihr eure Smarty-Pagination Klasse erweitert könnt.

Vorbereitung:

Wenn ihr alles selbst erweitern wollt, braucht ihr DIESE Datei. Die ihr nach dem Download  in das Verzeichnis “plugins” im Smarty-Verzeichnis kopiert.

Hab ihr keine modifizierte Pagination auf eurer Seite, oder wollt gerade die Pagination installieren, dann ladet HIER schon die fertige bzw. originale SmartyPagination 1.6 + meiner integrierten Sortierung runter.

 

Los geht’s

 

Als erstes öffnet ihr die  SmartyPaginate.class.php

Dort sucht ihr die Funktion connect() und erweitert sie nach folgenden Code:

// use $_GET by default unless otherwise specified
$_formvar = isset($formvar) ? $formvar : $_GET;

mit =>

// set sort

if(isset($_formvar['p_ord']) && isset($_formvar['updown'])) {
$_SESSION['SmartyPaginate'][$id]['pagi_orderby'] = $_formvar['p_ord'];
$_SESSION['SmartyPaginate'][$id]['pagi_updown'] = $_formvar['updown'];
}

Habt ihr das erledigt geht ihr weiter runter und setzt vor der Funktion setTotal() folgende Funktion ein:

function setSort($porder, $so = “DESC”, $id = ‘default’) {
if(!$porder) {
trigger_error(‘SmartyPaginate setSort: You must set a entity-type from your database.’);
return false;
}
if ($porder && !isset($_SESSION['SmartyPaginate'][$id]['pagi_orderby'])) {
$_SESSION['SmartyPaginate'][$id]['pagi_orderby'] = $porder;
}
if (isset($_SESSION['SmartyPaginate'][$id]['pagi_orderby']) && !isset($_SESSION['SmartyPaginate'][$id]['pagi_updown'])) {
$_SESSION['SmartyPaginate'][$id]['pagi_updown'] = $so;
}
}

Jetzt geht ihr zum ende dieser Klasse und setzt vor der letzten Klammer ” } ” folgende Funktion ein:

function getSort($what, $id) {
if ($what == “order” || $what == “sort” || isset($id)) {
if ($what == “sort”) {
return $_SESSION['SmartyPaginate'][$id]['pagi_updown'];
}
if ($what == “order”) {
return “ORDER BY “. $_SESSION['SmartyPaginate'][$id]['pagi_orderby']. ” “;
}
} else {
return ” “;
}
}

jetzt könnt ihr die  SmartyPaginate.class.php speichern und schließen.

Zum Modul & Template:

Im Modul (im PHP) könnt ihr die Sortierung am Anfang der Datei wie folgt initialisieren:

SmartyPaginate::setSort(‘spalte’, ‘sortierung’, ‘id’);
Diese Einstellung ist nur der Defaultwert, also wenn die Seite aufgerufen wird, könnt ihr hiermit bestimmen welche Spalte und in welcher Richtung sortiert werden soll.

Spalte = die spalte eures Datensatzes aus der Datenbank (Datenbanktabellenspalte)
sortierung = ASC oder DESC
id = ist eure Paginatio-ID

zb.: SmartyPaginate::setSort(‘datum’, ‘DESC’, ‘default’);

Euer Query sieht dann dann so aus:

SELECT * FROM tabelle WHERE  “.SmartyPaginate::getSort(‘order’, ‘default’).” “.SmartyPaginate::getSort(‘sort’, ‘default’).” LIMIT “.SmartyPaginate::getCurrentIndex(‘default’).”, “.SmartyPaginate::getLimit(‘default’).”";

Wie ihr sehen könnt ist SmartyPaginate::getSort(‘order’, ‘default’) und SmartyPaginate::getSort(‘sort’, ‘default’) hinzugekommen. Wichtig ist das ihr order und sort angibt. Damit weiß die Funktion was ihr zurück haben wollt. order gibt euch den ORDER BY und sort die Tabellenspalte. Ihr könnt auch nur order verwenden.

 

Im Template wird das nun in alter Smartymanier verwendet :

Mit folgender Zeile verwendet ihr das Plugin:

{paginate_sort id=”default” title=”Sortierung der Nummer” orderby=”datum” text=”Datum” class=”meinstyle”}

Diese könnt ihr in den Spaltenkopf eurer Tabelle legen.

id = eure pagination ID, habt ihr keine bleibt die frei oder weg und es wird Default benutzt.
title = ist euer Titletag
orderby = ist der Spaltenname aus der Datenbank den ihr sortieren wollt
text = Linkt text, (Leerzeichen verwenden wenn ihr ein Bild verwenden wollt)
class = ist der CSS-Style den ihr in eurer CSS definiert habt, zb. wenn ihr ein Bild verwenden wollt. :)

Ja ich denke der Rest erklärt sich von selbst. Habt ihr mehre Tabellenspalten die ihr sortieren lassen wollt, dann benutzt einfach weitere {paginate_sort} Zeilen und vergebt einfach bei orderby andere Spaltenbezeichnungen.

Viel erfolg!

Bye bye…

 

Jun 02

Mit dem uniq_sozial Smarty-Plugin ladet Ihr einfach eure LikeBox von Facebook  ohne großen Aufwand in eurer Smarty-Template. Das was Ihr braucht ist ein Facebook -Account und natürlich eine Webapplikation bzw. Webseite die auf Smarty läuft.

 

Ladet euch Hier das Plugin in der Version 1.0 runter.

Wie Ihr das Plugin Installiert und Konfiguriert findet ihr in der README des Archivs.

 

Viel Spaß damit.

 

 

Apr 08

Ich möchte euch heute ein kleines Smarty-Plugin mit dem Namen uniqSEO vorstellen, wobei die Namensähnlichkeit nicht bloß zufälliger Natur ist. ;)

Ihr könnt euch das Plugin hier herunterladen. Anschließend kopiert ihr die Datei function.uniqSEO.php aus der vorher entpackten ZIP-Datei in euer Smarty-Pluginverzeichnis. Ab sofort wird nun uniqSEO geladen.

So, jetzt zeige ich euch an einem kleinen Beispiel, wie ihr es verwenden könnt:

Wenn ich mit Smarty programmiere, verwende ich immer eine Struktur, welche dann in etwa so aussieht:
http://www.meine-seite.de/index.php?module=news
Mittels ‘module=news’ rufe ich in diesem Fall die Datei ‘news.php’ aus dem Verzeichnis ‘module’ auf, welche wiederum die Datei news.tpl dazu läd.

Nun kann es vorkommen, dass die URL jetzt so aussieht:
http://www.meine-seite.de/module=news&id=45
In diesem Fall rufe ich das Modul ‘news’ auf und will den Inhalt mit der ‘ID 45′ haben. Ich hoffe, ihr konntet mir bis hierher folgen.

Als erstes modifizieren wir die Datei ‘.htaccess‘ folgendermaßen:

RewriteEngine on
RewriteRule ^(.*)/([0-9]+)/(.*)$ index.php?module=$1&post=$2

Wie wir sehen, ist ‘$1′ der Name des Moduls und ‘$2′ der Wert, die ID, der jeweiligen News.

Die Form ‘index.php?module=…’ entspricht eurer regulären URL. Aus dieser machen wir jetzt eine SEO-optimierte URL, die dann so aussieht:
http://www.meine-seite.de/news/45/Das-ist-mein-smarty-seo-plugin-post

Wir sehen ‘news’, das ist unser Modul, dann sehen wir die ’45′, also die ID der betreffenden News. Den Teil ‘Das-ist-mein-smarty-seo-plugin-post’ übergeben wir einfach so. Dies wird immer der Titel einer News sein.

Jetzt gehen wir in unser Template (*.tpl)

Haben wir jetzt eine Stelle mit einem a-Tag z.B. ‘<a href=”index.php?module=news&post=45″ titel=”Das-ist-mein-smarty-seo-plugin-post”>Mein Smarty-SEO-Plugin</a>’, ändern wir diese wie folgt ab:

<a href=”{uniqSEO status=”Enable” module=”news” post=”45″ titel=”Das-ist-mein-smarty-seo-plugin-post” type”extern” }” titel=”Das-ist-mein-smarty-seo-plugin-post”>Mein Smarty-SEO-Plugin</a>

‘status=”Enable”‘ => sagt aus, dass wir das Plugin verwenden wollen. Der Wert ‘Disable’ oder jedes andere Wort verhindert dies. Sollte es nicht auf ‘Enabled’ gesetzt sein, benutzen wir unsere alte reguläre URL, so wie in der .htacces definiert.
‘module=”news”‘ => ist wieder unser Modul.
‘post=”45″‘ => ist in diesem Fall wieder die ID unserer betreffenden News.
‘titel=”Das-ist-mein-smarty-seo-plugin-post”‘ => ist der Titel, also die Überschrift der News, welche wir in der URL einfach mit übergeben. Da wir später die Tags des SEO-Plugins mit Variablen füllen werden, also z.B. ‘{$news.titel}’, sollten wir besser ‘{$news.titel|strip:”-”}’ verwenden. Dadurch werden die Leerstellen unseres Titels automatisch durch Bindestriche ersetzt. Auf diese Weise verhindern wir, dass unsere URL so aussieht: ‘http://www.meine-seite.e/news/45/Das%20ist%20mein%20smarty%20seo%20plugin%20post’.

Sollten Verständnisprobleme auftreten, einfach melden. :)

 

Viel Spaß damit…

 

 

Nov 09

Es gibt leichte Probleme bei der Verwendung von jquery.validation und den jquery.suggest. Wenn die Autovervollständigung etwas zurück gibt und ich es mit Enter bestätige, überprüft die Validation die Eingabe bzw. die Rückgabe vom Suggester. Das funktioniert soweit so gut. Wähle ich aber eine Rückgabe mit der Maus aus, schafft die Validation es nicht diesen Wert zu überprüfen bzw. ihn up-to-date zu halten.

Ich bin jetzt nicht der JS Gott und habe auch nur eine momentane Lösung und würde mich freuen wenn diese einer hier ergänzt bzw. neu schreibt. Mein Gedanke war halt, den Focus auf den nächsten Input zu setzen und wieder zurück, und dann wieder auf den nächsten Input. So wird die Validation ermuntert. Ich habe viel gesucht bei Google, nur leider fand ich nur andere Leute mit dem Gleichen Problem.

Ihr öffnet die jquery.suggest und sucht die Zeile / Function: function displayItems

function displayItems(items) {

if (!items) return; if (!items.length)
{ $results.hide();
return;
}
var html = ”;
for (var i = 0; i < items.length; i++) html += ‘<li>’ + items[i] + ‘<li>’;

$results.html(html).show();
$results .children(‘li’) .mouseover(function() {
$results.children(‘li’).removeClass(options.selectClass);

$(this).addClass(options.selectClass); }) .click(function(e) {
e.preventDefault();
e.stopPropagation();
selectCurrentResult();
selectCurrentMeineprivFunction();

$(‘#nächstesInput’).focus();
$(‘#jetzigesInput’).focus();
$(‘#nächstesInput’).focus();

}
);

}

Schöne wäre es vielleicht das so zu machen, das er automatisch das jetzige momentane  und nächste Inputfeld ermittelt, so das diese Zeile nicht immer dem Formular angepasst werden muss.

Aug 12

Grüße,

Auf der suche nach einigen  Beispielen und Tutorials, die uns erklären könnten, wie man die Filemaker.php anwendet und einbindet, findet man leider nicht wirklich ein gutes Anwendungsbeispiel. In meinem Tutorial werde ich nicht auf alles eingehen können, da die Dokumentation die ihr im Netz an jeder Ecke finden könnt, alles gut erklärt und das natürlich auch in Deutsch.

Dokumentation

Kurze Anleitung

Wie man ein Formular erstellt, und es verwendet wird, werde ich hier nicht erklären. Das sollte Voraussetzung sein!

Als erstes coden wir die Verbindung zu Filemakerdatenbank:

$fm = new FileMaker();
$fm->setProperty(‘database’, ‘Meine Datenbank’);
$fm->setProperty(‘hostspec’, ‘localhost’);
$fm->setProperty(‘username’, ‘name’);
$fm->setProperty(‘password’, ‘passwort’);

Jetzt überprüfen wir ob Werte in unseren $_POST Variablen gesetzt wurden.

if (isset($_POST['form_username']) && $_POST['form_username'] != “”) {
$web_login_query = array(‘web_name’ => $_POST['form_username'], ‘web_pass’ => $_POST['form_passwort']);
if (!isset($web_login_query['web_pass']) or $web_login_query['web_pass'] == “”) {
$smarty->assign(‘fehler’, “Passwort vergessen.”);

Sollten alle Werte gesetzt sein, erstellen wir eine  Filemaker Instanz und nehmen die Verbindung mit unserer Datenbank auf.
newFindCommand(‘web_login’) ist das Layout, addFindCriterion ist die Bedingung. Das Feld, bzw. der Wert der zurück kommt, ist die USER_ID, also ist USER_ID unser ($)result

} else {

$new = $fm->newFindCommand(‘web_login’);
$new->addFindCriterion(‘username’,$web_login_query['web_name']);
$new->addFindCriterion(‘passwort’,$web_login_query['web_pass']);
$result = $new->execute();

Jetzt prüfen wir ob auch die Verbindung mit unserer Datenbank erfolgreich war.

if (FileMaker::isError($result)) {

echo ‘Error: ‘ . $result->getCode() . ”;
$fm_fehler = $result->getCode();
$smarty->assign(‘fehler’, $fm_fehler);
header(“Location: index.php?module=login&err=$fm_fehler”);

}

Sollte ein Fehler auftreten sein, springt er zurück zum angegeben Template.  Dabei übergebe ich den Fehlercode von Filemaker. In der PDF findet ihr die Bedeutung der Codes. Wir stellen fest, das es kein Fehler in unseren Login gibt und das die Zugangsdaten übereinstimmen. Jetzt lassen wir uns die USER_ID zurückgeben und packen sie in unsere Session. Vielleicht ein USER_LEVEL, wer mag.

$records = $result->getRecords();
$user_id = $records[0]->getField(‘tn_id’);

$_SESSION['user_id'] = $user_id;
setcookie(“user_level”, ’6′, time()+3600);
header(“Location: index.php”);

}

Jetzt kommt noch der Teil, der einspringt, wenn von Anfang an schon ein Fehler vorhanden ist. Zum Beispiel Passwort oder Username, oder beides wurde vergessen.

} else {
if ($_GET['err'] == “401″) {
$smarty->assign(‘fehler’, “Ihre Zugangsdaten sind ungültig.”);
} else {
$smarty->assign(‘fehler’, “Bitte geben Sie ihre Zugansdaten ein und drücken sie auf Anmelden.”);
}
}
?>

Es gibt bestimmt noch einige Sachen die man Optimieren kann bzw. unbedingt muss, doch sollte hier der kleine Auszug nur verdeutlichen wie man das ungefähr angehen kann..

Aber es geht! :)

Tschaui

Apr 24

Ein Beispiel für die Verwendung eines Cookies mit dem Mojo.Framework und WebOS (Palm Pré).  Wer Interesse hat sich eine App für WebOS zu entwickeln, kann sich weitere Informationen auf der Seite von PALM holen und sich ein
Developer-account auf http://developer.palm.com

Voraussetzung,  ich weiß was WebOS, ein Palm und das Mojo-Framework
ist Wie man ein Projekt zur Erstellung einer APP anlegt und versteht.
(Werde dazu später noch ein mini Tut veröffentlichen.)

Was wollen wir machen?

Wir wollen unsere E-Mailadresse, die wir vorher in einem Cookie gespeichert haben,  in einer Textzeile, die eine E-Mailadresse wünscht, wieder anzeigen.

1. HTML Code Zeile und Button
2.Javascript, initialisiert ”Button” +  ”Ausgabezeile” + “Cookie”

Scene1-scene.html (Wir legen eine Eingabezeile und ein Button an, der dann auch später noch eine PHP Datei aufrufen soll und unseren
Cookie setzt.)

<div>
 <div x-mojo-loc=''>eMailadresse:</div>
 <div>
 <div>
 <div x-mojo-focus-highlight="true">
 <div>
 <div x-mojo-element="TextField" id="emailAdresse"></div>
 </div>
 </div>
 </div>
 </div>
 </div>
<table width=98% cellpadding=1 cellspacing=0 border=0>
 <tr>
 <td>
 <div x-mojo-element="Button" id="ButtonSend" name="gesendet"></div>
 </td>
 </tr>
</table>

—EOF Scene1-scene.html—

scene1-assistant.js (Wir definieren den Button, Texfeld. / Speichern den Cookie und schicken die E-Mailadresse zusätzlich an eine PHP Datei.)

Als Erstes legen wir unsere HTML-Elemente fest. Mojo hat die
Eigenart, x-mojo-elemente erst dann anzuzeigen, wenn sie
initialisiert sind.

Wir fangen mit unserem Textfeld an.

Scene1Assistant.prototype.setup = function() {

 this.controller.setupWidget("emailAdresse",
 this.attributes = {
 hintText: $L('E-Mail eingeben'),
 multiline: false,
 enterSubmits: false,
 focus: true,
 autoFocus: true,
 emoticons: false
 },

 this.emailAdresseModel = {
 value: email_val,
 disabled: false
 });
<!---- Code geht weiter für prototype.setup


In der Variable email_val steht später die E-Mailadresse die wir von
unserem Cookie holen. Sollte kein E-Mailadresse vorhanden sein, gibt
es den hinText des Widgets "emailAdresse" wieder, in dem Fall
"E-Mail eingeben."

Jetzt kommen wir zu unserem Button. Der wird auch im prototype.setup
initialisiert. Er hat die Bezeichnung 'buttonSend' was auch im
HTML-Teil die ID des Buttons ist.

this.controller.setupWidget('buttonSend',
 this.attributesSend = {
 type: Mojo.Widget.activityButton
 },

 this.buttonSendModel = {
 buttonLabel: 'Senden und Setzen',
 buttonClass : 'sendButton',
 disabled: false
 });

Jetzt bestimmen wir noch wie sich der Button zu verhalten hat. Bevor
wir nun prototype.setup schließen, legen wir folgenden Code rein.
Hier wird, wenn der Button gedrückt ist, die Function bzw. der
Event "SendButtonPress" aufgerufen.

this.SendButtonPressFocus = this.SendButtonPress.bind(this);
 Mojo.Event.listen(this.controller.get('buttonSend'),
 Mojo.Event.tap, this.SendButtonPressFocus);

} <--- Schließt prototype.setup



Nachdem wir das Setup geschlossen haben, kommen wir auch gleich
zu unser Function "SendButtonPress". Hier wird in die Variable email
mit this.emailAdresseModel.value unsere E-Mailadresse geschrieben.
this.emailAdresseModel.value ist der Wert den ich in der Eingabezeile
eintrage, quasi unsere E-Mail. 

Wenn ihr dann die App zum ersten mal aufruft, kann dort
außer des hinTextes nichts drin stehen, da der Cookie erst noch
gesetzt werden muss. Erst nach dem Eintragen eurer E-Mail wird der
Button unser Cookie setzen.

E-Mail eintragen, Button drücken. E-Mailadresse wird in die Variable
email geschrieben. Cookie mit dem Inhalt der Variable email wird
gesetzt E-Mailadresse wird auch zu einer PHP Datei geschickt. Kann
dann später z.B. zum eintragen in einen Newsletter o.ä. verwendet
werden.

Scene1Assistant.prototype.SendButtonPress = function(event){        

 email = this.emailModel.value;

//cookie setzen

 this.myValue = email;
 this.myCookie = new Mojo.Model.Cookie('login_sc1');
 this.myCookie.put(this.myValue); 

//email verschicken

 var URL = "http://www.xxxxx.com/login.php?email=" + email;
 buttonSend.mojo.activate();

 var request = new Ajax.Request(URL, {
 method:'get',
 evalJSON: 'force',
 onSuccess: this.ausgabe.bind(this),
 onFailure: this.fehler.bind(this)

});

} <-- ende function SendButtonPress


Jetzt setzen wir noch am Anfang der Scene1Assistant.js den Code zum
aufrufen des Cookies und zum lesen seines Inhalts rein.
Der Inhalt unseres Cookies wird in die Variable email_val gelegt.


function Scene1Assistant() {
 this.savedValueCookie = new Mojo.Model.Cookie('login_sc1');
 this.savedValue = this.savedValueCookie.get();
 email_val = this.savedValue;    

}

Wenn wir jetzt die App neu starten, müsste der hinText "E-Mail
eingeben" mit unserer E-Mailadresse ersetzt worden sein. *freu*



Zusammenfassung Cookiessssss.....

Cookie setzen:

email = "eineemailaddresse.de;

 this.myValue = email;
 this.myCookie = new Mojo.Model.Cookie('login_sc1');
 this.myCookie.put(this.myValue);

Mit put() wird der Inhalt von myValue gesetzt.


Cookie Lesen:

this.savedValueCookie = new Mojo.Model.Cookie('login_sc1');
 this.savedValue = this.savedValueCookie.get();
 email_val = this.savedValue;

Mit get() wird der Inhalt des Cookies geholt und in die Variable
email_val geschrieben.


Mit remove() kann man Cookies löschen.

Winke winke!!!

Okt 06

Ich werde immer wieder gefragt “Was versteht man denn unter barrierefreiem Screendesign?”.

Die Frage wird mir meist dann gestellt, wenn im Vorfeld schon einiger Quatsch erzählt wurde. Die Meisten verstehen darunter immer “nur”, dass es sich hierbei um Design und Layout handelt, was in jedem Browser so angezeigt wird, dass man keinen Unterschied zwischen den einzelnen Browsern bemerkt. Sicher ist das ein Teil davon, aber nicht Antwort auf alle Fragen. Barrierefrei besteht aus ganz vielen kleinen Bereichen mit lustigen englischen Bezeichnungen. Auf die wichtigsten werde ich mal versuchen einzugehen.

Accessibility, wird immer wieder als die Definition von Barrierefrei benutzt. Nachtrag: “Es ist die Deutsche Übersetzung aus dem Englischen.” (Zugänglichkeit, Erreichbarkeit = Barrierefreiheit “Wäre eine Definition”) Auch werden Usability und Accessibility gleich gestellt. Und das stimmt nach meiner Meinung so nicht. Hier gibt es Unterschiede, welche wirklich wichtig sind.

Usabillity ist die Benutzerfreundlichkeit einer Internetseite für “normale” Menschen, die ohne Behinderung eine Seite bedienen und deren Informationen verarbeiten können. Bei einer optimalen Usability reden wir von einer Internetseite, die für den Rezipienten ersichtlich und logisch erklärt wird. Das heißt, mir wird jede Informationen und jede Zusatzinformation durch optimale Technik und Semantik leicht zugänglich ausgegeben.

Accessibility, ist die Technologie, welche der Seite zur Verfügung gestellt wird, um die Zugänglichkeit für Leute mit Behinderung zu ermöglichen. Sie ist aber nicht zuständig dafür, dass der User mit Behinderung die Information zum Schluss tatsächlich auch erhält bzw. wahrnehmen kann. Nein, sie stellt nur die Möglichkeit zur Verfügung! Also ist es möglich sich die Seite vorlesen zu lassen (schlechtes Sehen, blind, oder Leseschwächen), sie zu vergrößern (schlechtes Sehvermögen) und eine Ausgabe für Blinde, die mit einer sogenannten Braille-Zeile Informationen aufnehmen können, zu erhalten. (Blindenschrift)

Wie wir sehen, gehen Accessibility und Usability nicht Hand in Hand. Ich kann eine Seite reinweg für Leute mit Behinderung erstellen, welche einem Menschen mit “normalen” Fähigkeiten vielleicht den Nerv rauben könnte. Oder wir erstellen eine Seite, bei der wir mit Grafiken und lustigen Designs nur so zugepflastert werden, bei welcher ein Mensch mit Behinderung einfach keine Möglichkeit hat, Informationen zu erhalten.

Ich denke, das richtige Maß an Information und die entsprechende Selektion meiner Zielgruppe, lassen mich entscheiden, ob ich mehr auf Accessibility oder Usability Rücksicht nehme.

Finde ich eine optimale Balance, und schaffe es, Leuten mit und ohne Einschränkung ein genügendes Informationsangebot zur Verfügung zu stellen, dann können wir erst von Barrierefreiheit sprechen.

Was sollten wir verstehen?

Barrierefreiheit ist nicht nur zwischen den Interpretationsschwierigkeiten einzelner Browser zu sehen. Nein, hier spielt auch der Informationsaustausch zwischen “normalen” und Menschen mit einer Einschränkung eine große Rolle.

Nachtrag: Hier wird nicht diskriminiert. Es gibt nun mal Menschen mit Einschränkung. Ich versuche mit diesem Beitrag eingentlich zu vermitteln.

Denn das ist Barrierefrei!


Aug 11

WordPress e-Commerce Plugin, so lautet das Plugin für Worpress. Es ist einfach immer wieder bemerkenswert was man mit unseren kleinen schnuckeligen WordPress veranstalten kann. Die Qualität des Plugins ist sehr hoch. Es legt wert auf Standarts, Ästhetik und Usability und hat eine menge an Zusatztools. Es gibt dann auch noch eine Goldvariante die dann noch einige Zahlungssysteme unterstützt. Die Single, quasi für Blogger kostet 40$ und die Business 195$. Ob man das braucht oder eigene Systeme installieren möchte kann man dann immer noch entscheiden.

 

Weitere Informationen zu den WP eCommerce findet ihr auf http://www.instinct.co.nz/e-commerce/ leider nur in Englisch!

 

Grüße