S_earch E_ngine M_arketing

SEM (Search Engine Marketing)
=
SEO (Search Engine Optimizing)
+
SEA (Search Engine Advertising)

Grundgedanke : Für wen wird die WebSite gemacht ?

Grunddaten der Internetnutzung via webhits.de, dort oben die Sprungmarke ‚Web-Barometer‘ anklicken.

Rankingfaktoren ( onPage )
– Inhalte / Mehrwert
– Seitentitel  + Meta + Überschriften + Keywords
– Indexierbarkeit
– Ladegeschwindigkeit (z.B hierüber)
– Responsive Design (zum Testen hierüber)
– Nutzerverhalten
– Verweildauer
– Rücksprünge
– nicht mit Werbung überladen

Rankingfaktoren ( offPage )
– gute Backlinks / Empfehlungen (z.B. hierüber)
gut :
– vertrauenswürdige Herkunft
– thematischer Zusammenhang
– Link im oberen Bereich der Quellseite
– Linktext
schlecht :
– keine automatisch generierten Linklisten (Massenansammlungen)
– keine Linklisten
– kein Forenspam
– keine Lobeshymnen

– Social Signals
– Facebook
– XING
– Youtube
– Google+
– Marke / Autor
– z.B. Ebay-Verkäufer
– Impressum

Crawlability
– sauberer Code
– möglichst keine wiederkehrenden Inhalte
– klare Struktur der WebSite
– 
Datei robots.txt steuert das Verhalten der Suchmaschinen.
Sie wird im WebServer-Verzeichnis platziert.
– keine CSS- und JavaScript-Anweisungen im HTML-Code
– Linkbezeichnung
– Barrierefreiheit
– xml-Sitemap anlegen ( z.B. hierüber )

Registrieren in Web-Verzeichnissen:
 weboxi

TYPO3:: Installation im HE-WebPack

Quelldatei hier laden und speichern.

Diese komprimierte Archivdatei typo3_src+dummy-6.1.7.zip dann
mit dem Windows-Explorer lokal extrahieren nach beispielsweise
C:\Users\Benutzername\Downloads\TYPO3 .
Eigenschaften:
8.985 Dateien in 1.701 Ordnern, Größe: 52,1 MB (auf dem Datenträger: 77,6 MB)

FileZilla starten und dieses lokale Verzeichnis nun mit FTP auf den WebSpace hochladen, z.B. von C:\Users\Benutzername\Downloads\TYPO3
nach /www/kutznerweb.de/TYPO3 .
Dauer: etwa 8 Minuten mit Kabel Deutschland 100
Programm-Einstellungen:
Standard-Transfertyp:: automatisch | ASCII | Binär

Bei HostEurope am KIS anmelden und via Webhosting / Paketname / Domains,
die Domainzuordnungen in etwa folgendermaßen editieren:
Domain xyz.de
Verzeichnis
Pfad/URL:: /www/kutznerweb.de/TYPO3 ,
und abschließend auf SPEICHERN klicken.
Änderungen sind innerhalb von 15 Minuten im System aktiv.

Nun die dorthin verlinkte Domain aufrufen.

TYPO3 begrüßt mit seinem Logo, dazu dann die Meldung :

The Install Tool is locked
To enable the Install Tool, the file ENABLE_INSTALL_TOOL must be created.

In the typo3conf/ folder, create a file named ENABLE_INSTALL_TOOL. The file name is case sensitive, but the file itself can simply be an empty file. For security reasons, it is highly recommended that you either rename or delete the file after the operation is finished.

As an additional security measure, if the file is older than one hour, TYPO3 will automatically delete it. The file must be writable by the web server user.

Mit FileZilla ins WebServer-Verzeichnis / wechseln und
mit Klick auf die rechte Maustaste / Neue Datei erstellen, die Datei
ENABLE_INSTALL_TOOL erstellen.

Mit Rechtsklick auf diese Datei / Dateiberechtigungen unten den Wert
777 eintragen und auf OK klicken.

Nach dem Aufruf bleibt der Bildschirm leer.
Im Error-Log des WebServers folgende Meldung

.. /typo3conf/LocalConfiguration.php is not writable ..

Mit FileZilla die Schreibrechte bei diesen Ordnern auf 775 ändern:
fileadmin
fileadmin/_temp_/
fileadmin/user_uploads/
typo3/ext/
typo3conf/
typo3conf/ext/
typo3conf/l10n/
typo3temp/
uploads/
uploads/media/
uploads/pics/
uploads/tf/

Bei HostEurope am KIS anmelden und via Webhosting / Paketname / Datenbanken,
Datenbank verwalten aufrufen.
Unten eine neue Datenbank anlegen, hinter dem Benutzerprefix db1234567- beispielsweise typo3 schreiben und einen gleichnamigen Benutzer anlegen.

Anschließend nun den
Benutzernamen db1234567-typo3
und das Kennwort  der Datenbank,
sowie den Namen des Datenbankservers wp123
eingeben
–> CONTINUE

Jetzt eine neue Datenbank anlegen lassen „Choose / Create a (new) database“ Name:: typo3 –>continue

Abschließend den Datenbankinhalt wählen: Default TYPO3 Tables –>import database

Nun mit phpMyAdmin einen neuen Datenbankbenutzer anlegen

TYPO3 :: Grundkonfiguration, Seite einrichten & Templates

WEB / SEITE
eine Seite besteht immer aus den 4 Bereichen:
Links, Normal, Rechts, Rand

In einen Bereich auf Neuen Datensatz an dieser Stelle einfügen
Dann z.B. Text
Dem eine Überschrift geben und eventuell eine Verknüpfung dazu, dann einen Text unten im Editor eintragen.
Anschließend oben auf SPEICHERN&SCHLIEßEN klicken

Um überhaupt etwas angezeigt zu bekommen muss unter WEB / TEMPLATE etwas angepasst werden.
Dort im SELECT auf INFO/BEARBEITEN
Nach jeder Modifikation oben auf Speichern klicken

Dann unten auf SETUP klicken
im Editor erscheint ein Editor mit lauter leeren Zeilen und deren Nummerierung

Zunächst und immer bei jedem Template unten auf
VOLLSTÄNDIGEN TEMPLATE-DATENSATZ BEARBEITEN, dann
den Reiter ENTHÄLT wählen und dort unter
STATISCHE TEMPLATES EINSCHLIEßEN, dort
CSS STYLED CONTENT klicken (hinzufügen) und alles Speichern

Zunächst eine Instanz des PAGE-Objekts erzeugen
meinTYPO = PAGE

TYPO3 :: ImageMagick

Separat kann eine Grafik-Bibliothek installiert werden, um mittels php Bilder erstellen zu können,
beispielsweise werden diese für Miniaturansichten beim Datei-Browsen benötigt-

Quelldatei kann geladen werden unter <a href=“http://www.imagemagick.org/script/download.php“ title=“imagemagick.org“ target=“_blank“>imagemagick.org</a>
Aktuelle Datei am 16.3.2014 ist <strong>ImageMagick-6.8.8-8.zip</strong>

Datei entpacken nach irgendwo und Verzeichnis umbenennen in ImageMagick
z.B. <strong>D:\ImageMagick</strong>

In der Konfiguration die Parameter
$TYPO3_CONF_VARS[‚GFX‘][im_path]
$TYPO3_CONF_VARS[‚GFX‘][im_path_lzw]
setzen auf
D:\ImageMagick\

Prüfen im Backend unter ADMIN-TOOLS / INSTALL / IMAGE PROCESSING
dort im Abschnitt CureentConfiguration eine 1 bei ImageMagick enabled

Bei HostEurope muss ImageMagick als selbstkompiliertes CGI-Modul eingebunden werden.
<a href=“http://faq.hosteurope.de/index.php?cpid=11722&in_object=2&searchword=typo3″ title=“HostEurope.de“ target=“_blank“>Quelle</a>

TYPO3:: Installation

Quelldatei von der Homepage  http://typo3.org/  herunterladen oder hier  oder als Direktlink.

Die komprimierte Archivdatei typo3_src+dummy-6.1.7.zip
ist die aktuelle Version,
nächste Version 6.2 LTS (mit Langzeitsupport bis März 2017) ab Ende März 2014 verfügbar.

Diese Datei entpacken nach htdocs und das Verzeichnis umbenennen in typo3, bzw. lokal entpacken und mit FTP auf den WebSpace hochladen..

Frontend-Aufruf demzufolge http://localhost/typo3/

Der Erstaufruf startet den Assistenten unter http://localhost/typo3/typo3/install/index.php?mode=123&step=1&password=joh316.

Dazu dann die Meldung :

The Install Tool is locked
To enable the Install Tool, the file ENABLE_INSTALL_TOOL must be created.

In the typo3conf/ folder, create a file named ENABLE_INSTALL_TOOL. The file name is case sensitive, but the file itself can simply be an empty file.
For security reasons, it is highly recommended that you either rename or delete the file after the operation is finished.

As an additional security measure, if the file is older than one hour, TYPO3 will automatically delete it. The file must be writable by the web server user.

Erstelle die Datei D:\xampp\htdocs\typo3\typo3conf\ENABLE_INSTALL_TOOL

Anschließend nun den Benutzername und das Kennwort der Datenbank,
sowie den Namen des Datenbankservers eingeben
–> continue

Jetzt eine neue Datenbank anlegen lassen „Choose / Create a (new) database“
Name:: typo3
–>continue

Abschließend den Datenbankinhalt wählen:
Default TYPO3 Tables
–>import database

Nun vielleicht gleich die Basiseinstellungen anpassen
–> Configure TYPO3

Installations-LogIn
Passwort anpassen

Eventuell Proxy-Einstellungen anpassen
–>Write Configuration

Frontend erreichbar unter http://localhost/typo3/
Backend erreichbar unter http://localhost/typo3/typo3
Backend-LogIn
Default username: admin
default password: password
Passwort anpassen

Umstellen im Backend unter ADMIN-TOOLS / LANGUAGE
German anhaken
–> „Update from Repository“-Button oben klicken und einen Moment warten

Dann auf den Benutzer ADMIN klicken und in den Benutzereinstellungen
die Sprache Deutsch wählen,
persönliche Daten hinzufügen und ggfs.
das Startverhalten anpassen.

AJAX – Tutorial

Quelle :: w3schools.com

AJAX = Asynchronous JavaScript and XML.

AJAX is not a new programming language, but a new way to use existing standards.

AJAX is the art of exchanging data with a server, and updating parts of a web page – without reloading the whole page.

Introduction

AJAX is about updating parts of a web page, without reloading the whole page.
What You Should Already Know

Before you continue you should have a basic understanding of the following:

HTML / XHTML
CSS
JavaScript / DOM

If you want to study these subjects first, find the tutorials on our Home page.
What is AJAX?

AJAX = Asynchronous JavaScript and XML.

AJAX is a technique for creating fast and dynamic web pages.

AJAX allows web pages to be updated asynchronously by exchanging small amounts of data with the server behind the scenes. This means that it is possible to update parts of a web page, without reloading the whole page.

Classic web pages, (which do not use AJAX) must reload the entire page if the content should change.

Examples of applications using AJAX: Google Maps, Gmail, Youtube, and Facebook tabs.

AJAX is Based on Internet Standards

AJAX is based on internet standards, and uses a combination of:

XMLHttpRequest object (to exchange data asynchronously with a server)
JavaScript/DOM (to display/interact with the information)
CSS (to style the data)
XML (often used as the format for transferring data)

Note AJAX applications are browser- and platform-independent!

Google Suggest

AJAX was made popular in 2005 by Google, with Google Suggest.

Google Suggest is using AJAX to create a very dynamic web interface: When you start typing in Google’s search box, a JavaScript sends the letters off to a server and the server returns a list of suggestions.
Start Using AJAX Today

AJAX is based on existing standards. These standards have been used by developers for several years. Read our next chapters to see how it works!

The keystone of AJAX is the XMLHttpRequest object.
The XMLHttpRequest Object

All modern browsers support the XMLHttpRequest object (IE5 and IE6 use an ActiveXObject).

The XMLHttpRequest object is used to exchange data with a server behind the scenes. This means that it is possible to update parts of a web page, without reloading the whole page.
Create an XMLHttpRequest Object

All modern browsers (IE7+, Firefox, Chrome, Safari, and Opera) have a built-in XMLHttpRequest object.

Syntax for creating an XMLHttpRequest object:
variable=new XMLHttpRequest();

Old versions of Internet Explorer (IE5 and IE6) uses an ActiveX Object:
variable=new ActiveXObject(„Microsoft.XMLHTTP“);

To handle all modern browsers, including IE5 and IE6, check if the browser supports the XMLHttpRequest object. If it does, create an XMLHttpRequest object, if not, create an ActiveXObject:

The XMLHttpRequest object is used to exchange data with a server.
Send a Request To a Server

To send a request to a server, we use the open() and send() methods of the XMLHttpRequest object:
xmlhttp.open(„GET“,“ajax_info.txt“,true);
xmlhttp.send();

Method Description
open(method,url,async) Specifies the type of request, the URL, and if the request should be handled asynchronously or not.

method: the type of request: GET or POST
url: the location of the file on the server
async: true (asynchronous) or false (synchronous)
send(string) Sends the request off to the server.

string: Only used for POST requests

GET or POST?

GET is simpler and faster than POST, and can be used in most cases.

However, always use POST requests when:

A cached file is not an option (update a file or database on the server)
Sending a large amount of data to the server (POST has no size limitations)
Sending user input (which can contain unknown characters), POST is more robust and secure than GET

setRequestHeader(header,value) Adds HTTP headers to the request.

header: specifies the header name
value: specifies the header value

AJAX – Hintergrundwissen

Quelle :: tecchannel.de

Das Web wird noch dynamischer.
Mit Ajax steht eine Sammlung an Technologien zur Verfügung, die bei der Implementierung von interaktiven Web-Anwendungen verwendet werden kann.
In diesem Beitrag erlernen Sie alle Grundlagen, um Ajax in Ihren eigenen Anwendungen anwenden zu können.
Das Akronym Ajax steht für „Asynchronous Javascript And XML“. Im Kern geht es dabei darum, Webseiten interaktiver zu gestalten. Bereits mit dem Internet Explorer 5 waren eigentlich alle für Ajax benötigten Komponenten in einem gängigen Browser vorhanden, fanden aber keine breite Anwendung.
Der Microsoft-Konkurrent Google dagegen schaffte es mit seinem Ajax-basierten E-Mail-Dienst Google Mail einen wahren Ajax-Boom auszulösen.
Die Idee hinter Ajax besteht daraus, Teile einer Webseite asynchron nachzuladen und den Inhalt der Webseite dadurch zu verändern. Das bedeutet, dass bei einer Veränderung nicht die komplette Seite neu geladen wird, sondern lediglich die geänderten Inhalten.
Dafür wird ein so genannter XMLHttpRequest aus einem JavaScript Script heraus ausgelöst. Dieser Request erfragt von einem Server Inhalte, die typischerweise per XML an das JavaScript zurück gesendet werden. Das Script wertet dann dieses XML aus. Die Daten aus dem XML setzt das Script dann um und ändert mit Hilfe des DOM (Document Object Model) die Website entsprechend.

Stückchenweise laden

Ein praxisnahes Beispiel für die Anwendung ist ein Diskussionsforum, dessen Diskussionen im HTML als Baum dargestellt werden. Um einen Beitrag zu lesen, muss der Surfer auf den Titel des Beitrages im Baum klicken. Im klassischen Modell wird dazu ein Request an den Server gesendet, und eine vollständige Seite die zusätzlich zum Baum den Text des Beitrages enthält. Beim Modell mit Ajax würde als Reaktion auf die Serveranfrage nur der Text des Beitrages geliefert werden: Ein Javascript-Programm wäre dann dafür zuständig, diesen Text auf der ansonsten nicht veränderten Seite einzublenden.
Für die Durchführung dieser Anfrage gab es bei älteren Internet-Explorern seit Version 5 ein ActiveX Objekt. Der IE 7 wird, so wie andere Browser das heute schon tun, ein entsprechendes Objekt nativ zur Verfügung stellen. Die aktuelle XMLHttpRequest-API des Internet Explorer gibt es bei MSDN, die von Mozilla ist ebenfalls verfügbar.
Der eigentliche Trick bei Ajax ist der XMLHttpRequest – der kann nämlich asynchron stattfinden. Asynchron bedeutet in diesem Zusammenhang, asynchron zum Aufbau der restlichen Seite, und auch asynchron zu den auf der Seite laufenden Skripten. Das bedeutet, dass ein Download von Daten per HTTP angestoßen werden kann, und dass die Daten heruntergeladen werden können, ohne das dadurch die Interaktion des Surfers mit der Seite leidet. Der Aufbau der angeforderten Seite läuft also im Hintergrund ab.

Asynchron laden – nichts blockieren

Zusätzlich zum asynchronen Download von Teilen des Inhalts wird unter Ajax auch häufig eine stark interaktive HTML-Seite verstanden, die Interaktion aber mit klassischen Mitteln wie CSS und Javascript erreicht: Dabei erhält der Anwender bessere Hinweise auf die Funktionsweise der Seite zum Beispiel durch überlagernde Effekte.
Für die Verwendung von Ajax auf Webseiten gibt es eine ganze Reihe an Frameworks, auf all diese einzugehen, würde aber den Rahmen des Beitrags sprengen. Stattdessen erklärt der Beitrag im Folgenden die grundlegende Funktionsweise von Ajax anhand eines Workshops.

Praxisübung:
Das Beispiel demonstriert die Grundlagen für ein Ajax-basiertes Web-Forum, es implementiert einen Teil der Client-Site eines typischen Webforums. Das Forum hat eine Thread-Seite, auf der die Beiträge untereinander angezeigt werden. Unter jeder Thread-Überschrift werden dabei die Überschriften der Antworten angezeigt. Für das Beispiel wurde Ajax dann verwendet, um die eigentlichen Nachrichten sichtbar zu machen: Der Benutzer des Forums kann eine Überschrift anklicken, und der Text der Nachricht wird daraufhin unterhalb der Überschrift aber oberhalb der nächsten Antwort eingeblendet.
Grundsätzlich ließe sich das auch so lösen, dass einfach die Inhalte aller Nachrichten in unsichtbaren DIV-Elementen vollständig geladen werden. Der Klick auf die Überschrift würde dann ein Javascript ausführen, das den entsprechenden Textkörper sichtbar macht. Der Nachteil dabei ist natürlich der, dass der komplette Text aller Nachrichten immer mit heruntergeladen werden muss.

Praxis-Workshop: Ein Ajax-Forum

Das Beispiel arbeitet wie folgt: Der Mausklick auf die Überschrift startet Javascript, das seinerseits den benötigten Text per Ajax nachlädt und an passender Stelle einbaut. Der HTML-Body der Thread-Seite wird vom Server wie folgt generiert:


<div id="p1" onclick="GetText('p1')">
Die erste Überschrift zum Thread
</div>
onclick

Die einzelnen Überschriften befinden sich also jeweils innerhalb eines DIV-Elementes und haben auch eine jeweils eindeutige ID. In der Praxis würde man dafür vermutlich die ID des zugehörigen Datensatzes aus der Datenbank verwenden, in der sich die Nachrichten befinden. Für jedes DIV wird ein „“-Eventhandler gesetzt. In der Praxis würde man dies sicherlich ebenfalls per Javascript tun, um das Beispiel einfacher zu gestalten wurde darauf hier aber verzichtet.
Der Click-Handler hat einen Parameter, und zwar die ID des DIVs.

Ein Klick – Ein Download

Mit dem Click-Handler beginnt die eigentliche Ajax-Implementierung.
Jede Implementierung setzt sich aus drei Kernstücken zusammen:
Eine Funktion, die das XMLHttpRequest-Objekt erzeugt und den Download anstößt,
eine Funktion die mitbekommt, wenn der Download beendet wurde,
die dritte Funktion wertet die Daten anschließend aus.
GetText() ist hier die erste Funktion, die den Download anstößt.


var getter = null;
function GetText( id) {
if (getter != null && getter.readyState != 0 && getter.readyState != 4) {
getter.abort();
}
try {
getter = new XMLHttpRequest();
}
catch (error) {
try {
getter = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (error) {
getter = null;
return false;
}
}
getter.onreadystatechange = ReadystateChanged;
getter.open( "GET", id + ".xml");
getter.send(null);
return true;
}

Zunächst gibt es dazu eine Variable „getter“. Diese nimmt eine Instanz des XMLHttpRequest-Objektes auf und ist zunächst auf null gesetzt. Zu Beginn der Funktion wird dann überprüft, ob es bereits ein solches Objekt gibt, und ob sich dieses momentan damit befasst, etwas herunterzuladen.
Ist das der Fall, so wird der Vorgang mit abort() abgebrochen. Sinn der Sache ist es, nicht zu viele parallele Downloads anzustoßen – wobei multiple Downloads in der Praxis wohl eher kein wirklich großes Problem darstellen. Danach wird innerhalb es try/catch-Blockes versucht, ein XMLHttpRequest-Objekt zu instanziieren.

Funktion Zwei: Onreadystatechanged

Am Ende des äußeren Try-Blockes angelangt, liegt nun also ein passendes Objekt vor. Das XMLHttpRequest-Objekt hat ein Event namens „onreadystatechanged“. Dieses Event wird im Zuge des Download-Vorganges mehrfach ausgelöst, ihm wird im Code der Eventhandler „ReadystateChanged“ zugewiesen.
Im nächsten Schritt wird dem Objekt die Methode für den Download (GET), sowie die herunterzuladende URL angegeben. Für dieses Beispiel wird davon ausgegangen, das sich die einzelnen Beiträge des Forums in separaten XML-Dateien befinden, die die ID des Postings als Namen verwenden. In der Praxis würde man hier vermutlich eher ein PHP- oder ASP-Skript ansprechen, dem die ID als Parameter übergeben wird. Für die Verwendung von Ajax ist es aber ohne Belang, woher die Daten auf dem Webserver stammen, beziehungsweise wie die Antwortdaten für die HTTP-Anfrage generiert werden.
Im Anschluss übergibt send() die Anfrage. Das ganze läuft asynchron ab, das bedeutet, der Aufruf von send() kommt sofort zurück, das Skript kann weitere Aufhaben übernehmen.
Daraufhin tritt der zweite Schritt von Ajax in Aktion: Der Eventhandler für „onreadystatechanged“ wird aufgerufen. Im Beispiel ist das die Funktion ReadyStateChanged().

function ReadystateChanged() {
if (getter.readyState == 4) {
if (getter.status == 200) {
InsertContent();
}
else {
alert(„Fehler: “ + getter.statusText);
}
}
return true;
}

Statusinformation

Während des Datentransfers wird der Eventhandler mehrfach aufgerufen. Dabei lässt sich der aktuelle Zustand des Transfers anhand des Members „readyState“ des XMLHttpRequest-Objektes überprüfen. Zur Verfügung steht ein Wert von 0 bis 4, wobei 4 bedeutet, dass die Daten komplett geladen wurden und zur Verfügung stehen. In der unten stehenden Tabelle finden Sie die Bezeichnungen aller Werte, weitere Informationen gibt die MSDN-Dokumentation.
Wert
Bedeutung
0 Das Objekt wurde erstellt, aber noch nicht initialisiert
1 Das Objekt wurde erstellt, aber die send()-Methode noch nicht aufgerufen
2 Die send()-Methode wurde aufgerufen, aber Header und Status sind noch nicht verfügbar
3 Einige Daten wurden bereits empfangen, aber die Übertragung ist noch nicht komplett
4 Alle Daten wurden empfangen und stehen zur Verfügung

Zusätzlich zum „readyState“ hat das XMLHttpRequest-Objekt auch noch den „status“-Member. Dessen Wert gibt den HTTP-Status des Transfers an: Steht dieser auf 200, so ist der Transfer nicht nur abgeschlossen, sondern hat auch funktioniert. Beide Member werden in ReadystateChanged() abgeprüft – im Fehlerfall wird dabei eine Nachricht per alert() angezeigt.

Funktion Drei: Auswertung und Abschluss

Ist der Transfer abgeschlossen tritt der dritte Ajax-Zustand ein: Die Daten werden ausgewertet. Im Beispiel passiert das mit der Funktion InsertContent().

function InsertContent() {
var node = getter.responseXML.getElementsByTagName(„message“)[0];
var target = node.getAttribute(„target“);
var msgNode = document.createElement(„div“);
var parentNode = document.getElementById( target);
parentNode.appendChild(msgNode);
msgNode.textContent = node.firstChild.nodeValue; // ff
msgNode.innerText = node.firstChild.nodeValue; // ie
lastNode = msgNode;
}

Im Wesentlichen wird also das gelieferte XML-Dokument per XML-DOM ausgelesen, und die darin enthaltenen Werte werden dann in die DOM-Elemente des HTML-Dokumentes eingetragen. Bei Bedarf werden diese Elemente dazu erst einmal erzeugt.

Probleme und Lösungen

Wie man sieht, lassen sich mit AJAX stark interaktive Webseiten sehr einfach programmieren. Es gibt aber auch eine ganze Menge an Problemen über die man sich als Entwickler bewusst sein sollte – auch, wenn diese in der Beispielimplementierung nicht auf den ersten Blick klar werden.
Das erste „A“ in Ajax steht für „asynchron“ – und in der Praxis bedeutet dies, dass man mit multiplen, gleichzeitig ablaufenden Skripten und daraus entstehenden Synchronisationsproblemen klar kommen muss. Die Programmierung mit multiplen Threads ist aber nicht jedermanns Sache – in der Praxis werden die allermeisten Programmierer multiple Threads aus guten Gründen vermeiden.
Ein anderes Problem mit AJAX ist die Tatsache, dass daraus resultierende Websites von Suchmaschinen nicht besonders gut indiziert werden können. Genauer: Nur die nicht interaktiven Elemente, also die, die ohne den Gebrauch von JavaScript und dem DOM dargestellt werden, sind für die Roboter der Suchmaschinen sichtbar. Webseitenbetreiber die ein Interesse daran haben, dass ihre Seiten indiziert werden und dennoch AJAX verwenden möchten, kommen also nicht daran vorbei, eine zweite, nicht AJAX-basierte Version der Seite zur Verfügung zu stellen.

Fazit

Trotz der oben genannten Probleme wird Ajax ein immer beliebteres Mittel um Web-Seiten interaktiver zu gestalten. Bestes Beispiel sind die letzten vorgestellten Programme von Google, etwa der Calendar oder das Notebook. Auch der Einsatz in einem Webforum macht Sinn – können Inhalte doch dem Anwender ohne Reload präsentiert werden. Einige interessante Projekte sind beispielsweise Blursofts MetaForums, bbPress oder das k4 Bulletin Board.
Mit Ajax lassen sich Websites leichter und intuitiver nutzen, teilweise kann man kaum einen Unterschied zu installierten Desktop-Anwendungen ausmachen. Diesen Trend greifen auch andere Internetfirmen auf, so haben sich beispielsweise Yahoo und Map24 ein neues Design inklusive Ajax gegönnt. (mja)

Joomla! :: Installation + Sprachauswahl

WebServer und Datenbankserver sind erforderlich.
Die Installations-Resource kann von der Joomla!-WebSite heruntergeladen werden.
Die aktuellste Version ist am 10. März 2014 die Version 3.2.

Die heruntergeladene Datei wird entpackt in das htdocs-Verzeichnis des WebServers, wobei zuvor ein Unterordner „Joomla“ angelegt werden sollte.

Nach dem Entpacken auf dem Datenbankserver eine neue Datenbank „joomla“ anlegen (utf8_unicode_ci).

Nun den ersten Aufruf von http://localhost/Joomla absetzen und Site-Namen und Beschreibung, Admin-eMail, -Benutzername und Kennwort eingeben, zudem die Angabe, ob die WebSite online oder offline verwendet werden soll, dann WEITER klicken.

Im zweiten Schritt erfolgen die Angaben zur Datenbank.
Datenbanktyp      :: mysql
Servername            :: localhost
Benutzername      :: root
Kennwort                ::
Datenbankname :: joomla
Tabellenpräfix      :: jm1_
Dann WEITER klicken.

Im letzten Schritt kann eine Zusammenfassung angezeigt und per eMail gesendet werden. Die Installation wird überprüft. Etwaige Fehlermeldungen müssen an dieser Stelle korrigierend bearbeitet werden.

Nun auf INSTALLIEREN klicken.
Anschließend muss das Verzeichnis „Installation“ im Joomla-Ordner gelöscht werden, da sonst auf dem Webserver weitere Installationsvorgänge, auch unberechtigt, durchgeführt werden.
Klicken auf INSTALLATIONSVERZEICHNIS LÖSCHEN.

Nun ins FrontEnd wechseln via WEBSITE oder ins BackEnd mit ADMINISTRATOR.

Im BackEnd kann im „ControlCenter“ der Punkt CONFIGURATION/LanguageManager gewählt werden.
Nach dem Herunterladen des gewünschten Sprachpakets via INSTALL LANGUAGE, kann dieses über einen entsprechenden Radio-Button gewählt und via SETDEFAULT aktiviert werden.

Alternativ kann das Sprachpaket via http://www.jgerman.de/downloads/joomla-32-auf-deutsch.html unter „Deutsches „Full“-Paket (Zum Nachrüsten der deutschen Sprache in Joomla!)“ heruntergeladen werden.
Die ZIP Datei muss zunächst entpackt werden.
Dann im ControlCenter auf EXTENSIONS/InstallExtensions klicken und jeweils die Dateien admin_de-DE.zip und site_de-DE.zip auswählen und UPLOAD&INSTALL klicken.

Nun kann unter INSTALL LANGUAGE „German“ ausgewählt werden.

In der Benutzerverwaltung/Basisoptionen noch die Sprache für den Benutzer anpassen.

wordpress :: Bedienung :: Papierkorb

Wenn ein Programm unbekannt ist, dann sind es oftmals die einfachen Dinge, die man weitgehend intuitiv tut, bis etwas eine bremst, weil sie nicht weiter kommt.

Selbst erlebt am Beispiel des Papierkorbs.

Nach der wordpress-Installation gibt es einige Basiseinträge, die vom System standardmäßig erstellt werden, unter anderem auch ein Kommentar.
Diesen habe ich einfach ‚in den Papierkorb geschoben, weg war er.

Nun interessierte ich mich für den Erstellzeitpunkt des Kommentars, und suchte den Paipierkorb – vergebens.

Ich googelte „wordpress papierkorb“ und kam zu folgender Lösung:

Im Dashboard den Eintrag „Kommentare“ anklicken.
In der Navigationszeile gibt es die Einträge „Alle“ , „Unerledigt“ , „Genehmigte“ , „Spam“ und auch  „Papierkorb“.