Banner - Blog zu den Themen Programmierung, SEO, SEM, Social Media, Internet Marketing, Webdesign, IT-Service und Mehr - SEO Hannover - IT-Dienstleistungen und SEO Agentur Fly2Mars-Media.de

Archiv

Archiv für Oktober, 2009

Magento Resources – Coding Tipps – Magento Cheet Sheet

29. Oktober 2009 daniel Keine Kommentare

php-code

Eine MySQL Datenbank kopieren als Linux Root

Mit dem folgendem Befehlt könnt ihr erfolgreich eine Magento Datenbank kopieren:

$ mysqldump -u root –password=pass db1 | mysql -u root –password=pass db2

Aktuelle Store ID abfragen

Manchmal ist es notwendig die aktuelle Store-ID abzufragen, das geht wie folgt:


Mage::app()->getStore()->getCode()

Heraus finden ob ein Benutzer am System angemeldet ist

Das ist wirklich nützlich wenn Sie z.B. eine spezielle Nachricht oder Gutschein-Code nur für eingeloggte Kunden anzeigen wollen


Mage::getSingleton( 'customer/session' )->isLoggedIn()

Blocks anzeigen welche in dem Bereich nicht geladen sind (Template)

In dem Beispiel binden wir die Top-Suche außerhalb der header.phtml ein. Sie können die Methode überall in den Template-Dateien aufrufen, um Blücke anzuzeigen welche an der Stelle nicht geladen werden.


$this->getChildHtml()

<?php echo $this->getLayout()->getBlock('top.search')->toHtml()?>

Ein bestimmtes Attribut ausgeben

Um den Namen eines Attributes in einer Bestellung anzuzeigen, folgenden Code aufrufen (z.B. in template/catalog/product/view.phtml ):

 <?php echo $_product->getAttributeText('furniture_type') ?> 

Wie gibt man den aktuellen Layout Ordner (theme folder) ausgeben?

 <?php echo $this->getSkinUrl('') ?> 

Die Ausgabe ist ähnlich: http://www.yoursite.com/skin/frontend/default/default/

Warum das sinnvoll ist:
Falls Sie ein neuen CSS Style hinzufügen wollen um z.B. ein Hintergrundbild anzuzeigen, ist der Beste Weg dieses in das Ihr Template Bilder Ordner zu packen und eine Referenz über diesen Aufruf zu setzen:

.className {
background-image: url(<?php echo $this->getSkinUrl('images/') ?>imageName.gif);
}

Oder eine JavaScript Datei einzubinden:

<script type="text/javascript" src="<?php echo $this->getSkinUrl('js/Script.js')?>"></script>

Abfrage von Daten aus der Datenbank (ohne SQL-Abfrage)

Einige Module haben ein Resoure-Model definiert, über das Ihr Daten direkt von der Datenbank abfragen könnt (mapping). Der Zugriff erfolgt in der Regel dann für die Spalte xy über das die Methode getXy() des Models.

Abfrage von Daten aus der Datenbank (per SQL-Abfrage)

Im Rahmen der Entwicklung von Erweiterungen ist es ggf. notwendig Daten aus der Datenbank abzufragen.
Da Magento auf das ZendFramework basiert, ist der Aufruf identisch und zwar wie folgt:


$select = '';
$table = 'table_name';
$where = 'id=' . $id;
$order = '';

// read data
$connection = Mage::getSingleton('core/resource')
->getConnection('core_read');

$select = $connection->select()
->from($table)
->where($where)
->order($order);

$data = $connection->fetchAll($select);

Session Variable in Magento setzen und abfragen

Mage::getSingleton('core/session')->setYourVariable('data');
 $Data = Mage::getSingleton('core/session')->getYourVariable();

Hier noch eine Übersicht von diversen häufig gebrauchten Funktionen (wird zukünftig noch erweitert):

Diverse Werte

<?php
$storeId     = Mage::app()->getStore()->getId();
$storeName   = Mage::app()->getStore()->getName();
$storeCode   = Mage::app()->getStore()->getCode();
$groupId     = Mage::app()->getStore()->getGroupID();
$groupName   = Mage::app()->getStore()->getGroup()->getName();
$websiteName = Mage::app()->getWebsite()->getName();

Models

<?php
$customer = Mage::getModel('customer/customer');
$order    = Mage::getModel('sales/order');
$product  = Mage::getModel('catalog/product');

/* own modul in local */
Mage::getModel('namespace_modul/model')->init($item);

Blocks


<?php
$block = Mage::app()->getLayout()->createBlock('Namespace_Module_Block_BlockName');

Helpers

<?php
$helper = Mage::helper('helper');

Logging

<?php
Mage::log('Schreibe das ins Logfile');

Globale Variable setzen & auslesen

Globale Variable in Magento definieren:

Mage::register('globaleVariable', 'Inhalt');

Globale Variable in Magento auslesen:

Mage::registry('globaleVariable');

Website ID anzeigen (website_id)

<?php echo  Mage::app()->getWebsite()->getID(); ?>

StoreGroup ID anzeigen (group_id)

<?php echo  Mage::app()->getStore()->getGroupID(); ?>

Website Name anzeigen (name)

<?php echo  Mage::app()->getWebsite()->getName(); ?>

Store Name anzeigen (name)

<?php echo  Mage::app()->getStore()->getGroup()->getName(); ?>

StoreView Name anzeigen (name)

<?php echo  Mage::app()->getStore()->getName(); ?>

Skin URL

<?php echo $this->getSkinUrl('images/test.jpg')  ?>

SKU anzeigen

<?php echo  $this->htmlEscape($_product->getSku()) ?>

Hersteller anzeigen

<?php echo  $_product->getAttributeText('manufacturer') ?>

Link zur anzeige einer Kategorie erzeugen


// die Zahl bei load() ist die Category-ID
Mage::getModel('catalog/category')->load('1000')->getUrl();

Link zu einem bestimmen Pfad erzeugen


$this->getUrl('checkout/cart/')

Alternativ


Mage::getBaseDir('lib');  // lib folder
Mage::getBaseDir('media'); // media folder

die aktuelle Action (ActionName) auslesen


// liefert als return zB. "new"
<pre>$this->getRequest()->getActionName());</pre>

Module überschreiben (config.xml)

Wenn ihr ein Model überschreiben möchtet so sieht dazu die Config wie folgt aus. Hier am Beispiel des Catalog Model  Mage_Catalog_Model_Config welches durch die neu angelegte Klasse Namespace_Catalog_Model_Config erweitert wird, welche im neu angelegten Module Ordner unter /app/code/local/Namespace/Catalog/Model/Config.php abgelegt ist ):


<?xml version="1.0"?>
<config>
 <modules>
 <Namespace_Catalog>
 <version>0.0.1</version>
 </Namespace_Catalog>
 </modules>
 <global>
 <models>
 <catalog>
 <rewrite>
 <config>Namespace_Catalog_Model_Config</config>
 </rewrite>
 </catalog>
 </models>
 </global>
</config>

Magento: Alle aktiven Sprachen anzeigen / show Available Languages

</pre>
$availLangs = Mage::getStoreConfig('general/locale/available_languages');
 if (!is_array($availLangs)) {
 $availLangs = explode(',', $availLangs);
 }

Aufbau der Datei robots.txt – Seiten für die Robots konfigurieren

29. Oktober 2009 daniel Keine Kommentare

Oft ist es sinnvoll bestimmte Seiten oder gar Bereiche einer Web-Seite vor der Indizierung von Suchmaschinen zu schützen. Zum Beispiel wenn es sich um Administrative, oder Seiten an denen noch gearbeitet wird, handelt.
Ggf. wollen Sie auch bestimmte Bilder, Logfiles oder Programmdateien vor der Indizierung der Suchmaschinen schützen damit diese nicht in den Suchergebnissen angezeigt werden.

Um dem gerecht zu werden wurde der Robots Exclusion Standard eingeführt, an den sich seriöse Suchmaschinen wie Google, Bing oder Yahoo! orientieren.

Nach diesem Standard muss eine Textdatei mit dem Namen robots.txt erstellt und diese im Stammverzeichnis der Domain platziert werden, so dass die Robots sie finden und beachten können.

<pre>http://www.beispiel.de/robots.txt

http://download.beispiel.de/robots.txt

http://beispiel.de:8080/robots.txt

</pre>

Der Aufbau der robots.txt erfolgt nach dem folgendem Shema. Zuerst gibt man an für welchen Crwaler eine Anweisung gelten soll, gefolgt von den einzelnen Anweisungen:

# robots.txt fuer http://www.beispiel.de/
User-agent: BeispielRobot
Disallow: /temp/       # Die Dateien sind nur Temporär und nicht von Bedeutung
Disallow: /logfiles/   # Sollen nicht allg. Verfügbar sein
Disallow: /bilder/     # Bilder sind teilweise geschützt und nicht zum download bestimmt
Disallow: /cgi-bin/    # CGI Ausgaben nicht indizieren
Disallow: /privat.html # Die pirivat.html soll nicht über die Suchmaschine gefunden werden

Mit User-agent: BeispielRobot bestimmt man, dass die Anweisungen nur für den genannten Crawler (BeispielRobot) gelten. Mit Hilfe der einzelnen Disallow Einträgen werden Verzeichnisse und Dateien bestimmt, welche nicht indiziert werden sollen. Mit Hilfe des Raute-Symbol (#)können Kommentare definiert werden, diese werden von den Robots ignoriert.

Ein Ausschluss aller Crawler ist mit Hilfe des sog. Wildchar * möglich:

# Alle Robots ausschließen
User-agent: *
Disallow: /temp/

Sollen nur bestimmte Crawler ausgeschlossen werden, sondern kann man diese wie folgt realisieren:

# Download-Tools vom CGI Verzeichnis fernhalten
User-agent: webmirror
User-agent: webzip
User-agent: webcopy
User-agent: wget
Disallow: /cgi-bin/

Eine Seite ganz von der Indizierung durch Suchmaschinen auszuschließen geht wie folgt:

# Komplette Webseite für alle Robots sperren
User-agent: *
Disallow: /

Durch entfernen des Slash (/) wird die Seite ganz für die Indizierung frei gegeben:

# Ganze Seite für Robots freigeben
User-agent: *
Disallow:

Die Groß- und Kleinschreibung wird bei Disallow Einträgen nicht durch die Robots berücksichtigt.

Sie Benötigen Unterstützung bei der Anpassung Ihrer robots.txt oder Optimierung (SEO) Ihrer Webseite bzw. Optimierung der Inhalte?

Fly2Mars-Media unterstützt Sie in diesen und vielen anderen Bereichen rund um das Thema Internet & IT!

Für ein individuelles Angebot nehmen Sie noch heute Kontakt mit uns auf.

Video Erstellung für Virales Marketing

29. Oktober 2009 daniel Keine Kommentare

Erfolgreichen Social-Media-Marketing basiert meist auf Viral- oder/und Guerilla-Marketing.

Wichtig ist es so viele User aus den verschiedensten Communitys bzw. Portalen zu erreichen, wie irgendwie möglich. Neben interessanten Gewinnspielen eignen sich Videos (für Youtube oder ähnlich) mit als Bestes Medium zur Verbreitung einer Message. Hat das Video zu dem ein hohen Unterhaltungswert, so verbreitet es sich wie von selbst (Viral-Marketing).

Ein gutes Beispiel findet ihr im folgendem Werbe-Video von Olympus:

Ein weiteres gutes Beispiel von Heinecken:

Der Erfolg von Social-Media-Kampagnen steht außer Frage. Die Jugend ist im Internet sehr aktiv und alte Medien wie Radio oder TV geraten immer mehr in den Hintergrund.

Hier noch eine Vorstellung einiger erfolgreicher SocialMedia Marketing Kampagnen:

http://www.slideshare.net/conceptbakery.de/social-media-marketing-sucess-stories

Gerne hilft Ihnen Fly2Mars-Media bei der Umsetzung einer erfolgreichen Social-Media-Strategie, für ein individuelles Angebot nehmen Sie noch heute Kontakt mit uns auf.

Unterschied PHP 5 zu PHP 6

28. Oktober 2009 daniel Keine Kommentare

Eine gute Zusammenstellung der Unterschiede von PHP 5 zu PHP 6 findet ihr hier !

KategorienPHP, Programmierung Tags: , ,

Photoshop Tutorial: Bild vektorisieren

28. Oktober 2009 daniel Keine Kommentare

Hier findet ihr eine Anleitung wie ihr in Photoshop ein Bild vektorisiert.

Cheet Sheets für Web-Entwickler

28. Oktober 2009 daniel Keine Kommentare

Hier findet ihr ein paar nützliche Cheet-Sheets für Web-Entwickler für HTML, XHTML, CSS, Apache, mod_rewrite, reguläre Ausdrücke, Java-Script, MySQL, Smarty und Jquery.

Paypal Direct endlich in Deutschland verfügbar – Zahlung ohne Paypal Konto

28. Oktober 2009 daniel Keine Kommentare

Ab sofort ist die schon lange erwartete Funktion “Paypal Direct” auch in Deutschland unter den Namen “Paypal-Gastzahlung” verfügbar.
Damit ist die Bezahlung für Käufer ohne PayPal-Konto möglich. Ein großer Mehrwert für Shopbetreiber und eine starke Konkurenz auf dem Markt der Bezahldienst-Anbieter im Kreditkarten-Bereich.

Mehr Infos bei Paypal (Link 1)

Mehr Infos bei Paypal (Link 2)

30 wichtige Magento Extensions

26. Oktober 2009 daniel Keine Kommentare

magento

Eine Übersicht der derzeit 30 wichtigsten Magento Extensions findet ihr unter folgenden Links:

Teil 1

Teil 2

Was ist Black Hat SEO?

23. Oktober 2009 daniel Keine Kommentare

Gerade für unerfahrene SEOs ist jedes Mittel recht welches dazu hilft innerhalb kürzester Zeit die Webseite in die Top10 der Suchmaschinen zu katapultieren.

Als SEO sollte man wissen welche Methoden erlaubt sind und welche gegen die Richtlinien der Suchmaschinen verstoßen. Z.B. die Google Webmasterrichtlinien sollten einem geläufig sein! So besteht keine Gefahr dass die Seite ab gestraft oder gar aus dem Index der Suchmaschinen fliegt.

Black Hat SEOs fallen häufig durch übermäßige SPAM-Einträge auf um schnellstmöglich eine Link-Struktur zur Webseite aufzubauen. Sei es in Blogs, Foren oder durch Landing-Pages.

Die folgenden Punkte sollen keines Wegs dazu animieren sie einzusetzen, sondern werden als Beispiele aufgezählt welche Methoden NICHT benutzt werden sollten! Die Benutzung dieser Methoden kann neben der Abstrafung der eigenen Webseite durch die Suchmaschinen, auch rechtliche Folgen mit sich bringen.

Black Hat Techniken sind z.B.

  • Doorway Pages bauen: Doorway Pages sind im Prinzip für den Nutzer einer Site sinnlos. Sie werden deshalb auch nicht von der eigentlichen Website aus verlinkt und sind nur über Suchmaschinen zugänglich. Durch einfache Methoden der Link-Analyse erkennen heutige Suchmaschinen Doorway Pages recht einfach, so dass zumindest die einfache Form nicht mehr sinnvoll eingesetzt werden kann.
  • Blogs, Foren, etc. mit eigenen SPAM und Backlinks füllen
  • Meta Tag Stuffing: Keywords in dem HTML Meta Tag describtion unterbringen
  • endlose Wiederholungen der Meta Keywords
  • Sich in Linkfarmen einkaufen oder selbst erstellen
  • Hidden Content (unsichbarer Text): Verstecken von unrelevanten Texten mit so einfachen Mitteln, wie weiße Schrift auf weißem Grund oder per CSS die Sichtbarkeit ausblenden

Weitere Möglichkeiten der Black SEO ist es zu versuchen dass die Konkurrenzseiten aus dem Index der Suchmaschinen fliegen oder einfach im Ranking abstürzen zu lassen!

Gängige Methoden sind:

  • Google Bowling: Um eine Webseite im Google-Ranking abstürzen zu lassen, werden Maßnahmen getroffen, welche Google mit Index-Sperrung beantwortet.
  • Tattling: Google mag keine bezahlten Links. Somit genügt es die bezahlten Links, welche der Betreiber der Zielwebsite geschaltet hat, einfach Google zu melden. Alterantiv können auch einfach selber bezahlte Links geschaltet und anschließend gemeldet werden.

Fly2Mars-Media unterstützt Sie bei der Optimierung (SEO) Ihrer Webseite nach den gängigen Google Webmaster Richtlinien, sowie bei der Optimierung der Inhalte. Für ein individuelles Angebot nehmen Sie noch heute Kontakt mit uns auf.

Pro & Kontra des cloud computing

23. Oktober 2009 daniel Keine Kommentare

Cloud Computing ist einer der Top-Themen 2009! Das Konzept dahinter ist nicht wirklich neu, gerade große Unternehmen setzen dieses oder ähnliche Konzepte seit Jahren ein zwecks Lastenverteilung, Ausfallsicherheit oder als Backup-Strategie.

Aber wie sicher ist Cloud Computing? Lohnt sich ein Umstieg? Was sind die Pro & Kontra?

Das „Sidekick-Desaster“ in der vergangenen Woche hat nicht nur den beteiligten Firmen Microsoft, Danger und T-Mobile schlechte Presse beschert, sondern auch dem Thema Cloud Computing. Alle Daten der Sidekick-Nutzer waren auf Servern innerhalb der Cloud gespeichert und gingen durch ein misslungenes Update verloren. Und zum Spot für die Kritiker war kein Backup vorhanden. Dabei werden die Ausfall- und Backup-Sicherheit mit als die Stärken des Cloud Computing verkauft.

Hier möchten wir Euch eine kurze Übersicht der Pro & Kontras geben:

pro

  • Durch Cloud Services ist der Zugriff auf Anwendungen und damit das Arbeiten von überall möglich – Der Designer kann von zu Hause genauso auf die Applikationen zu greifen wie von einem Internet-Café im Urlaub. Dadurch werden Fixkosten gespart da z.B. nicht für jeden Client eine Lizenz erforderlich ist.
  • Sehr hohe Erreichbarkeit. Teilweise wird mit 100% Uptime geworben, allerdings kann diese Zahl wohl nicht immer gewährleistet sein. Z.B. bei Server-Ausfall können einzelne Knoten ausfallen oder überlastet sein bis der Ausfall der Server oder die Wiederherstellung des Backup abgeschlossen ist.
  • Cloud Computing erfordert nur geringe Investitionen. Gerade kleinere Unternehmen/Webseiten verfügen nur über ein geringes Eigenkapital. Anstatt Zeit und Geld in Technik zu investieren können sie sich auf ihr Produkt konzentrieren.

Contra

  • Abhängigkeit des Anbieters der Cloud-Applikation bzw. des Dienstes. Hat dieser technische Probleme oder geht gar in die Insolvenz, so ist es selten möglich “mal eben” selbst ein Cloud-Server-Dienst zur Verfügung zu stellen (im Vergleich zu einem auf Apache & Linux basierten Webserver).
  • Datenschutz und Sicherheit: Die Daten liegen verteilt auf verschiedene Server & Standorte . Teilweise nicht durchschaubar wer auf diese Daten Zugriff hat, wo deren Standorte sind, wie das Backup-Konzept läuft, etc.! Es bleibt meist nur dem Anbieter zu vertrauen, dass er Informationen ausreichend vor Missbrauch schützt und ein gutes Backup-Konzept fährt.
  • Die Performance von Cloud-Diensten und vor allem Anwendungen welche Offline-Client-Applikationen ablösen, hängt von der Geschwindigkeit des Internet-Zugangs ab. Bei lokalen Anwendungen gibt es das Problem nicht!
  • Der Zugriff auf den Dienst hängt von der Verfügbarkeit des Dienstes/Anbieters ab. Bei z.B. Wartungsarbeiten, ist der Dienst nicht verfügbar. Zeitkritische Aufgaben können in diesem Fall ggf. nicht fertig gestellt werden.
  • Durch Cloud Services ist zudem ein verteiltes Arbeiten möglich. Der Redakteur kann im Internet-Café im Himalaya sitzen und dort an seinen Texten arbeiten. Präsenzarbeit ist überflüssig und es werden Fixkosten eingespart.
Get Adobe Flash playerPlugin by wpburn.com wordpress themes