[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Template für OXID-Ausgabe - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
gunfish
Beiträge: 21
Registriert: 19. Dez 2008, 15:47

Template für OXID-Ausgabe

20. Jun 2012, 18:03

Liebe Redaxogemeinde,

ich stehe vor einer kniffligen Hürde. Eine OXID-Installation soll Redaxo für einige CMS-Seiten verwenden.
Die Verknüpfung beider Systeme hat bisher reibungslos geklappt und ein einfaches Template wird in OXID auch perfekt angezeigt (Vielen Dank an dieser Stelle an Rüdiger und das gn2-Team).

Mein entgültiges Template ist etwas komplexer und will noch nicht so recht:

Code: Alles auswählen

<?php 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'));
 
 
function getArticleContent($ART_ID,$ART_LANG)
{
    $allContent = '<div id="brandsubmenu"><ul id="brandsubmenu">';
            
    $cat = OOCategory::getCategoryById($ART_ID,$ART_LANG);
    
    $article = $cat->getArticles();
    
    if (is_array($article))
    { 
        foreach ($article as $var)
        { 
            if($var->isOnline())
            {
                $articleId = $var->getId();
                $articleName = $var->getName(); 
                $art = new rex_article($articleId);
        
                $allContent .= '<li><a class="slidebutton" href="#" id="brands" alt="'.$articleName.'">'.$articleName.'</a></li>';
            }
        }
    }
    
    $allContent .= '</ul></div>';
    $allContent .= '<div id="brandcontainer"><ul id="brandcontainer">';
    
    if (is_array($article))
    { 
        foreach ($article as $var)
        { 
            if($var->isOnline())
            {
                $articleId = $var->getId();
                $art = new rex_article($articleId);
                $articleContent = $art->getArticle(); 
        
                $allContent .= '<li>'.$articleContent.'</li>';
            }
        }
    }
    
    $allContent .= '</ul></div>';
    
    print $allContent;
}

?>
 
<toxid>
<beluga-de><![CDATA[ <?php getArticleContent(24,0); ?> ]]></beluga-de>
<beluga-en><![CDATA[ <?php getArticleContent(24,1); ?> ]]></beluga-en>
</toxid>
Die gerenderte XML-Datei, die das Template erstellt sollte in etwa so aussehen:

Code: Alles auswählen

<toxid>
<beluga-de>
<![CDATA[
<div id="brandsubmenu"><ul id="brandsubmenu">

...

]]>
</beluga-de>
<beluga-en>
<![CDATA[
<div id="brandsubmenu"><ul id="brandsubmenu">

...

]]>
</beluga-en>
</toxid>
Tatsächlich wird wird sie leider wiefolgt ausgegeben:

Code: Alles auswählen

<toxid>
<beluga-de>
<![CDATA[
<div id="brandsubmenu"><ul id="brandsubmenu"><li><a class="slidebutton" href="#" id="brands" alt="Vodka Beluga">Vodka Beluga</a></li><li><a class="slidebutton" href="#" id="brands" alt="Beluga Classic">Beluga Classic</a></li><li><a class="slidebutton" href="#" id="brands" alt="Beluga Gold Line">Bel
]]>
<![CDATA[
uga Gold Line</a></li><li><a class="slidebutton" href="#" id="brands" alt="Cocktails">Cocktails</a></li></ul></div><div id="brandcontainer"><ul id="brandcontainer"><li><h2>REINHEIT UND INTEGRIT&Auml;T,<br />ST&Auml;RKE UND W&Uuml;RDE</h2>
 <p>Dies sind die ersten Eindr&uuml;cke, wenn man BELUGA kost
]]>
<![CDATA[
et. Ein Geheimnis behalten... Kein Fremder sein... Unpr&auml;tenti&ouml;s sein, aber nie ordin&auml;r... Gelassen und bestimmt zugleich sprechen &mdash; das sind all die urspr&uuml;nglichen, russischen Traditionen.</p>
 <p>BELUGA verleiht jeder Pers&ouml;nlichkeit Licht und Brillanz.</p>
 <p>&nbsp;<
]]>
<![CDATA[
/p><div class="infobox"><img class="infobox_pic" src="index.php?rex_img_type=pic_infobox&rex_img_file=pic01_1.jpg" alt="Malt alcohol" /><div class="infobox_text"><img class="infobox_inner_pic" src="index.php?rex_img_type=pic_infobox&rex_img_file=pic01_1.jpg" alt="Malt alcohol" /><h2>Malz-<br />alko
]]>

...

]]>
</beluga-de>
<beluga-en>
<![CDATA[
<div id="brandsubmenu"><ul id="brandsubmenu">

...

]]>
</beluga-en>
</toxid>
Das Problem ist also, das der CDATA-Tag auf magische Weise innerhalb des Contents eingebaut wird, anstatt ihn nur zu umschließen. Hat jemand eine Idee, wo mein Fehler liegen könnte?

Viele Grüße,
Jörg

Zurück zu „Allgemeines [R4]“