Twitter in Webseite einbinden (Twitter Remote Connect)

10. November 2009 at 16:57

twitter

Mit der folgenden PHP-Klasse könnt ihr euch mit Twitter verbinden und von Eurem Benutzer-Account die letzten Tweets auslesen um sie z.B. auf Eure Webseite einzubinden:

<?php
/**
 * fly2mars-media
 * http://www.fly2mars-media.de
 * http://www.fly2mars-media.de/seoblog
 */
/*
 * Twitter connector class
 */
class twitterConnect
{
 // http://www.webmasterpro.de/coding/article/php-twitter-in-eine-webseite-einbinden.html
 protected $twitter = null;
 public function __construct($userName = '', $pw = '')
 {
 $this->twitter = curl_init();
 curl_setopt($this->twitter, CURLOPT_USERPWD, $userName . ':' . $pw);
 }
 /*
 * get last X tweets
 * @var $tweet int
 */
 public function getLastTweets($tweets = 5)
 {
 //get last x tweets
 curl_setopt($this->twitter, CURLOPT_URL,
             'http://twitter.com/statuses/user_timeline.json?count=' . $tweets);
 curl_setopt($this->twitter, CURLOPT_RETURNTRANSFER, TRUE);
 $twitterData = curl_exec($this->twitter);
 // convert to array
 $twitterDataArray = json_decode($twitterData);
 return $twitterDataArray;
 }
 public function getOutLastTweets($tweets)
 {
 // get only text out
 foreach($this->getLastTweets(10) as $id => $value)
 {
 echo "tweet $id: " . $value->text . '<br/>';
 }
 }
}

Objekt erzeugen / Klasse verwenden

// get out text from last 10 tweets
$twitterConnect = new twitterConnect('twitterUserLoginName', 'twitterUserPassword');
$twitterConnect->getOutLastTweets(10);
$twitterResponseData = $twitterConnect->getLastTweets(10);
// get data out from array
echo '<pre>';
print_r($twitterResponseData);
echo '</pre>';

Sie Benötigen Unterstützung bei der Erstellung oder Anpassung eines Ihrer PHP- oder MySQL-Scripte?
Benötigen Sie eine Individual-Entwicklung oder möchten Ihr bestehendes System erweitern?

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

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

Zugriff von Magento von extern über Magento-API

10. November 2009 at 11:20

Magento ermöglicht nicht nur das Verwalten der Daten über das eigene Admin-Back-End, sondern auch den Zugriff über eine sogenannte „WSDL“ eine SOAP Kommunikation zur Magento-API aufzubauen. Die Magento SOAP Schnittstelle bietet sämtliche Funktionalitäten, Artikel-Import mit Bildern, Bestellungen verwalten, Lagerverwaltung, etc..

Um die Sicherheit zu gewährleisten muss ein API-Users samt Password definiert werden. Im folgenden möchten wir Euch eine kurze Einleitung zur Verwendung geben. Vorab solltet ihr noch prüfen ob die SOAP-PHP-Extension geladen ist (siehe php.ini)

Anlegen einer Rolle für die API-User

Unter System->Web Dienste->Gruppenberechtigungen vergebt ihr ein Namen für die Gruppe und bei Gruppenberechtigung Quellen das entsprechende Zugriff-Level auf die entsprechenden Ressourcen bzw. wählt ggf. Alle bei Quellenzugriff aus (speichern nicht vergessen).

Anlegen des API-Benutzers

Das geht im Admin-Bereich unter System -> Web Dienste-> Benutzer, dort auf den Button neuer Benutzer klicken und die entsprechenden Daten eingeben. Unter Benutzer Gruppenberechtigung wählt ihr die eben neu angelegte Gruppe um das Zugriffs-Level zu managen (speichern nicht vergessen).

Zugriff über externen PHP-Script auf Magento API

Mit dem folgenden PHP-Script könnt ihr Euch nun mit der Magento-API connecten und anschließend eine Übersicht der zur Verfügung stehenden Funktionen ausgeben lassen (SOAP V1 Zugriff):

<?php
/**
 * fly2mars-media
 * http://www.fly2mars-media.de
 * http://www.fly2mars-media.de/seoblog
 */
$host= '127.0.0.1';  // host name der magento installation
$options = array();
$proxy = new SoapClient('http://' . $host . '/index.php/api/soap/?wsdl');
// show available function
$avail = $proxy->__getFunctions();
foreach($avail as $func)
{
 echo "<p>" . $func . "</p>";
}
$proxy->endSession($session);
?>

Bei $host ist logischerweise der Hostname einzutragen unter welchem die Magentoinstallation aufgerufen werden kann.

Mit dem folgenden PHP-Script könnt ihr Euch nun mit der Magento-API connecten und anschließend eine Übersicht der zur Verfügung stehenden Funktionen ausgeben lassen (SOAP V2 Zugriff):

<?php
/**
 * fly2mars-media
 * http://www.fly2mars-media.de
 * http://www.fly2mars-media.de/seoblog
 */
$host= '127.0.0.1';  // host name der magento installation
$options = array();
$proxy = new SoapClient('http://' . $host . '/api/v2_soap?wsdl=1', $options);
// show available function
$avail = $proxy->__getFunctions();
foreach($avail as $func)
{
 echo "<p>" . $func . "</p>";
}
$proxy->endSession($session);
?>

Wie ihr seht, gibt es zwei Möglichkeiten des Zugriffs über SOAP auf die Magento-API.
V2 wurde um die Kompatibilität mit Java und .NET erweitert samt mehr Funktionen zum Aufruf (vergleicht einfach die Funktions-Listen beider Versionen).

Soweit so gut … als nächstes lassen wir uns eine  Katalog-Liste als Baumstruktur ausgeben, dazu verwendet ihr folgenden PHP-Code:

<?php
/**
 * fly2mars-media
 * http://www.fly2mars-media.de
 * http://www.fly2mars-media.de/seoblog
 */
$host= '127.0.0.1';
$options = array();
$proxy = new SoapClient('http://' . $host . '/index.php/api/soap/?wsdl');
// add or edit this in Magento-Admin -> Web Services
$apiuser= 'apiuser';
$apikey = 'efjiwofjioefjio234789f3h7ed789fh';
try
{
 $session = $proxy->login($apiuser, $apikey);
 $proxy->startSession();
 $catalog = $proxy->call($session, "catalog_category.tree");
} catch (Exception $e)
{
 echo "==> Error: ".$e->getMessage();
 exit();
}
foreach($catalog['children'] as $child)
{
 echo $child['name'] . " (id:" . $child['category_id'] . ")\n";
}
//Logout
$proxy->endSession($session);
?>

Bei $host ist logischerweise der Hostname einzutragen unter welchem die Magentoinstallation aufgerufen werden kann. Bei $apiuser und $apikey tragt ihr die entsprechend im Admin-Back-End eingegebenen Daten des API-Users ein.

Nach dem ausführen des Scriptes erhaltet ihr folgende Ausgabe:

Mit dem Zugriff über die API lassen sich problemlos externe ERP- oder CRM-Anwendungen an Magento anschließen oder Daten (Warenbestand) importieren.

Sie Benötigen Unterstützung bei der Erstellung oder Anpassung eines Magento eCommerce Shop System?

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

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

Firebug – Shortcuts

5. November 2009 at 13:55

Firebug ist einer mit der nützlichsten Tools im Bereich Debuggen von Webseiten ((X)HTML, CSS, JavaScript, etc.).

Mit Hilfe der Mouse & Keyboard-Shortcuts lassen sich viele Funktionen aufrufen oder der Aufruf vereinfachen, die wichtigsten Shortscuts findet ihr hier.

Magento: deutsches Lokalisierungspaket „Market Ready Germany“

13. Oktober 2009 at 15:45

Magento ist primär für den amerikanischen Markt entwickelt. Für alle deutschen Shop-Betreiber steht das kostenlose Modul „Market Ready Germany“ in Magento Connect zu im Verfügung.

Die Wichtigsten Inhalte:

  • Deutsche PDF-Vorlagen für Rechnungen, Bestellbestätigungen und Gutscheine
  • Deutsche E-Mail-Templates
  • Deutscher Mehrwertsteuer-Satz von 19 Prozent und 7 Prozent
  • Anzeige der rechtlich korrekten Zwischensummen im Warenkorb
  • Deutsche Standardtexte und Seiten für AGB, Impressum, Wiederrufsbelehrung, Über uns, Datenschutz, Lieferung und Bestellvorgang. Die Seiten werden automatisch mit Variablen für die Stammdaten angelegt. Dazu gibt es ein Backend-Modul zur einfachen Eingabe.

Durch die Installation der Erweiterung soll der Shop eine automatische Vorzertifizierung für Trustedshops erhalten.

Wichtig zu beachten: Die Installation funktioniert (aktuell?) nur bei neuen Shops, liegt unter anderem dass die Steuersätze überschrieben werden. Spätere Updates sind natürlich auch bei bestehenden möglich.

ACHTUNG: Beachtet den Hinweis beim Update auf Version 0.1.6

Das Modul findet ihr hier

Magento: Debug-Ausgaben

24. September 2009 at 17:20

Leider funktioniert die Debug-Ausgabe mit Pfadhinweisen in Magento nur im Front-End. Gerade bei der Entwicklung im Backend benötigt man immer wieder ein paar Debug-Ausgaben, z.B. in welchem Block-Element man sich gerade befindet. Durch die Ausgabe im Template von

$this->debug();

bekommt ihr ein Array mit Informationen über den aktuellen Pfad, Name im Layout sowie den Modul Namen! Bei der Entwicklung im Admin-Bereich teilweise verdammt hilfreich. 😉

Alternativ ist die Ausgabe von Debug-Infos in eigene log-files möglich über den folgenden php-aufruf:

<? php
Mage::log("log-message", Zend_Log::DEBUG, "logefile.log");
?>