Integration von REDAXO in OXID esales mit TOXID: Installation

Hat zwar etwas gedauert seit dem REDAXO-Tag 2011, aber jetzt kommt endlich der erste Teil der Anleitung zur Einbindung von REDAXO in OXID esales mit Hilfe von TOXID (danke an Christoph, der das für unsere interne Doku zusammengestellt hat).

Installation REDAXO

Als CMS-Grundlage empfiehlt sich eine normale “nackte” REDAXO-Installation mit REXseo. Zum Testen kann man natürlich die Installation mit Demo-Daten verwenden (wie wir das auf auch gemacht haben). Folgende Templates sind anzulegen (die REX_TEMPLATE IDs für Navi, Beadcrumb im Beispielcode beachten!):

Name: default aktiv: ja

[php]

<!–?php <br ?–> header(‘Content-Type: application/xml’);
header(‘Content-Encoding: text/html; charset=utf-8′);
echo ‘<!–?xml version=“1.0″?–>’.“n“;

class toxid {
function prepareContent($params) {
$content = $params[’subject‘];
$content = str_replace(‘“./files/’,'“’.rexseo::base().’files/’,$content);
$content = str_replace(‘href=“/’,’href=“’.rexseo::base().”,$content);
return $content;
}
}
rex_register_extension(‘OUTPUT_FILTER’,array(‘toxid’,’prepareContent’));
?>

<![CDATA[ REX_TEMPLATE[3] ]]>
<![CDATA[ REX_TEMPLATE[2] ]]>
<![CDATA[ REX_ARTICLE[] ]]>
[/php]

Name: Navigation: Breadcrumb Aktiv: Nein

[php]

<!–?php if ($this—>article_id != $REX[‚START_ARTICLE_ID‘]) {
$category = OOCategory::getCategoryById($this->article_id);
if (is_object($category)) {
$parents = $category->getParentTree();
if ($this->article_id != $this->category_id) {
$parents[] = OOArticle::getArticleById($this->article_id);
}
foreach ($parents as $cat) {
if (is_object($cat)) {
echo ‘ / <a href=“’.$cat->getUrl().’“>’.$cat->getName().’</a>’;
}
}
}
}
?>

[/php]

Name: Navigation: Links Aktiv: Nein

[php]

<!–?php // navigation generator erstellen $nav = rex_navigation::factory(); // ———- HEAD NAVI // Beginne in der Wurzelkategorie // 1 Ebene Tief // Nicht aufklappen (hier egal da nur 1 Ebene) // Offline ausblenden $category_id = 0; $depth = 3; $open = TRUE; $ignore_offlines = TRUE; echo $nav—>get($category_id, $depth, $open, $ignore_offlines);

?>

[/php]

Das default-Template muß für alle Artikel ausgewählt sein (das ist nur ein Beispiel, natürlich kann man verschiedene Templates für verschiedene XML-Ausgaben generieren).
Installation OXID
Die folgende Anleitung bezieht sich auf den aktuellen Stand von Toxid (10.01.12). Die aktuellste Version von TOXID gibt es auf GITHUB zum Download https://github.com/jkrug/TOXID-cURL
  1. Alle Dateien aus der ZIP Datei in die entsprechenden Ordner kopieren
  2.  Folgende Zeile in modules/functions.php hinzufügen:[php]require_once(‘toxid_curl/toxid_curl_autoloader.php’);[/php]
  3. Folgende Zeilen im OXID-Backend unter “module” aufnehmen:[php]oxseodecoder => toxid_curl/core/toxid_curl_oxseodecoder
    oxviewconfig => toxid_curl/core/toxid_curl_oxviewconfig
    [/php]
  4. Folgende Zeilen in config.ini.php aufnehmen und anpassen:[php]// your URL-Snippet to dectect TOXID-Pages
    $this->aToxidCurlSeoSnippets = array(
    ’0′ => ‘toxid-curl’,
    ’1′ => ‘toxid-curl-en’,
    );// URL to your CMS
    $this->aToxidCurlSource = array(
    ’0′ => ‘http://yourcmspage.com/’,
    ’1′ => ‘http://yourcmspage.com/en/’,
    );
    // Additional Params for URL
    $this->aToxidCurlUrlParams = array(
    ’0′ => ‘?type=1′,
    ’1′ => ‘?type=1′,
    );

    // FOR BACKWARDS COMPATABILITY UNCOMENT
    // template variable name, with will be accessible like [{$toxid_curl_cmp->getCmsSnippet(‚text1‘)}]
    // $this->sTplVariable = ‘toxid_curl_cmp’;[/php]

Einbindung

Über folgende Zeilen können die einzelnen XML-Tags aufgerufen werden.
Im untenstehenden Beispiel wird <test></test> der XML-Ausgabe aufgerufen:[php][{assign var=’toxid‘ value=$oViewConf->getToxid()}]
[{ $toxid->getCmsSnippet(‚test‘) }][/php]

Nun muss man nur die XML Ausgabe im REDAXO nach Wunsch anpassen und die XML-Tags an den gewünschten Stellen mit der obigen Zeil ausgegeben werden. (Templates und Module, je nach Bedarf).


0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.