Hallo,
zu allererst wollte ich die tolle Arbeit loben, die hier geleistet wurde. Echt fantastisch!
Nun - ich habe kleinere Anregungen und auch Fragen.
1.: Leider kann ich mich für den Bugtracker registrieren, da das Captcha nicht funktioniert. Ich wollte nämlich einen Fix bereitstellen für Hoster (so wie meiner), der ein fopen auf URLs nicht erlaubt:
In der Datei core/toxidcurl.php um Zeile 110 herum:
$this->_sPageContent = file_get_contents($source.$page.$param);
Ich schreibe hier mal meine “neue Version” der Funktion hin: Zunächst wird überprüft, ob file_get_contents funktioniert, bzw. erlaubt ist. Danach kommt ein Fallback mit cURL.
protected function _readUrl()
{
$source = $this->_getToxidLangSource();
$page = $this->getConfig()->getConfigParam('sToxidCurlPage');
$param = $this->getConfig()->getConfigParam('sToxidCurlUrlParam');
$file_contents = @file_get_contents($source.$page.$param);
if ($file_contents === FALSE) {
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, $source.$page.$param);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
$this->_sPageContent = $file_contents;
}
Dadurch wird curl verwendet.
2.: Ich habe Probleme die TOXID richtig zum Laufen zu bekommen:
Zunächst habe ich ein Typo3 mit den Beispieldaten aufgesetzt: http://goo.gl/fifgN
Die Ausgabe der XML-Datei sieht z.Zt. wie folgt aus:
<toxid>
<pagetitle>Welcome to TYPO3</pagetitle>
<navi>
<item>
<link>get-started.html</link>
<title>
<![CDATA[ Welcome to TYPO3 ]]>
</title>
</item>
<item>
<link>about-typo3.html</link>
<title>
<![CDATA[ About TYPO3 ]]>
</title>
</item>
<item>
<link>features.html</link>
<title>
<![CDATA[ Features ]]>
</title>
</item>
<item>
<link>customizing-typo3.html</link>
<title>
<![CDATA[ Customizing TYPO3 ]]>
</title>
</item>
<item>
<link>resources.html</link>
<title>
<![CDATA[ Resources ]]>
</title>
</item>
<item>
<link>examples.html</link>
<title>
<![CDATA[ Examples ]]>
</title>
</item>
<item>
<link>feedback.html</link>
<title>
<![CDATA[ Feedback ]]>
</title>
</item>
</navi>
<content>
<![CDATA[
<div id="c202" class="csc-default" ><div id="gettingStarted">
<h1><em class="themeColorForeground">Congratulations</em>, you have succesfully installed TYPO3</h1>
<h2>So—what's next ?</h2>
<p id="gettingStartedStepOne">Grab a cup of coffee and start browsing through this site to learn why TYPO3 is the most powerful open source content management system.</p>
<p id="gettingStartedStepTwo">Check out the sample pages in the "examples" section of this website or…</p>
<p id="gettingStartedStepThree"><a href="typo3/" title="You can login as any of the backend users listed to the right." class="themeColorBackground startButton">Log into TYPO3</a></p>
<p id="gettingStartedStepFurtherReading"> —<a href="http://typo3.org/community/">Get involved!</a></p>
</div></div>
]]>
</content>
</toxid>
Hierzu nochmal das dazugehörige TypoScript mit dem ich die XML-Ausgabe erstellen lasse:
xml = PAGE
xml {
typeNum = 123
config {
# Standard-Header deaktivieren
disableAllHeaderCode = 1
# keine Tags in XHTML umwandeln
xhtml_cleaning = none
admPanel = 0
metaCharset = utf-8
# Inhalt und Zeichensatz definieren
additionalHeaders = Content-Type:text/xml;charset=utf-8
}
10 = COA
10 {
wrap = <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><toxid>|</toxid>
# Navi
10 = HMENU
10 {
special = directory
special.value = 1
1 = TMENU
1 {
wrap = <navi>|</navi>
NO {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
wrap = <item>|</item>
5 = TEXT
5.wrap = <link>|</link>
5.typolink.parameter.data = field:uid
5.typolink.returnLast = url
10 = TEXT
10.wrap = <title><![CDATA[|]]></title>
10.data = field:title
}
}
}
}
#Seitentitel
5 = TEXT
5.data = page:title
5.wrap = <pagetitle>|</pagetitle>
#Inhalte
styles.content.get = CONTENT
styles.content.get {
table = tt_content
select.orderBy = sorting
select.where = colPos=0
select.languageField = sys_language_uid
}
20 = COA
20{
20 < styles.content.get
20.wrap = <content><![CDATA[|]]></content>
}
}
Soweit funktioniert das Ganze auch wunderbar. Kommen wir nun zum Oxid-Teil. Ich habe die Anleitung befolgt und in der Config.inc.php folgendes hinzugefügt:
// your URL-Snippet to dectect TOXID-Pages
$this->aToxidCurlSeoSnippets = array(
'0' => 'toxid-curl',
);
// URL to your CMS
$this->aToxidCurlSource = array(
'0' => 'http://european-lumber.com/toxid/typo3/',
);
// Additional Params for URL
$this->sToxidCurlUrlParam = '?type=123';
Das Auslesen funktioniert wunderbar, eine Verbindung kann hergestellt werden. Ich lasse dafür aus dem XML-Tree den Pfad “content” direkt im Header-Template ausgeben:
out/azure/tpl/layout/header.tpl:
<div id="header" class="clear">
[{ $toxid_curl_cmp->getCmsSnippet(content) }]
[...]
Nun zum eigentlichen Problem:
Da ich nun wirklich noch nichts mit OXID gemacht habe und dies mein erstes Projekt ist, in dem beide System miteinander verschmelzen (bisher habe ich mit nur Typo3 gearbeitet) sollen, habe ich nicht wirklich Erfahrung mit OXID und es kann dementsprechend sein, dass ich Verständnisfragen habe oder aber totalen Mist baue / gebaut habe.
Was muss ich tun (ein Wink mit dem Zaunpfahl täte es vermutlich am Anfang - man will ja lernen), damit ich
1.: Die Navigation um die Menüpunkte von Typo3 erweitern kann.
2.: Wie kann ich den Inhalt von Typo3 darstellen lassen?
Sowohl Typo3 als auch OXID sind gestern heruntergeladen und frisch installiert worden, sollten dementsprechend auch relativ aktuell sein
Ich hoffe, dass hier mir helfen könnt.
Gruß
Friedemann