[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
XML-Datei aus Modul heraus - 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/
Benutzeravatar
elricco
Beiträge: 197
Registriert: 22. Jun 2007, 00:48
Wohnort: Bochum
Kontaktdaten: Website

XML-Datei aus Modul heraus

18. Mai 2008, 03:32

Hallo,

ich hab das kleine Problem, dass ich eine ButtonListe für Flash aus den Artikeln generieren will. Wobei die Startartikel der jeweiligen Kategorie die Überschriften sein sollen und die Artikel die Button. Nach der dritten Kategorie soll "umgebrochen" werden, deshalb die zwei $posX-Werte.
Aus den "normalen" Artikeln soll aus dem FirstSlice->getValue(1) ausgelesen werden, da dies die XML-Dateien seien werden die für die Button benötigt werden. Nun bekomme ich aber beim einfügen des Moduls folgenden Fehler:

Parse error: syntax error, unexpected T_CONCAT_EQUAL in F:\xampp\apachefriends\xampp\htdocs\akm\redaxo\include\classes\class.rex_article.inc.php(596) : eval()'d code on line 77

Ich weiß gerade nicht wo der Fehler ist, oder ob ich mich doch aus Versehen an R3-Syntax gehalten habe, darum hier mein Code:

Code: Alles auswählen

<?php
// Variablen
$lHead = "lHead";
$lBut = "lBut";
$rHead = "rHead";
$rBut = "rBut";

$posXl = 503;
$posXr = 528;
$posY = 60;

$posX = $posXl;
$head = $lHead;
$button = $lBut;

$xmlFile = sitemap;
$xml_header = <<<EOL
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
EOL;

$array = array('\"' => '"','<em>' => '<i>','</em>' => '</i>','<strong>' => '<b>','</strong>' => '</b>','&ouml;' => 'ö','&auml;' => 'ä','&uuml;' => 'ü','&szlig;' => 'ß','&Ouml;' => 'Ö','&Auml;' => 'Ä','&Uuml;' => 'Ü','&euro;' => '€','&bull;' => '•','&middot;' => '·','<tab>' => '<tab></tab>','<tab>' => '<tab></tab>','&nbsp;' => ' ','&deg;' => '°','&sect;' => '§');

$categories = OOCategory::getRootCategories();

//Counter setzen -> Umbruch
$counter = 0;
//Inhalt XML-Datei zusammenstellen
foreach ($categories as $category) {
	$catname = $category->getName();
	$articles = $category->getArticles(true);
	foreach ($articles as $article){
		$art = new article($article->getId());
		$id = $article->getId();
		$artname = $article->getName();
		if ($article->isStartArticle()) {
			if ($counter > 2) {
				$posX = $posXr;
				$posY = 60;
				$head = $rHead;
				$button = $rBut;
			}
			$posY += 30;
			inhalt .= '<item>'."\n";
			inhalt .= '<property label="'.$artname.'" />'."\n";
			inhalt .= '<property template="'.$head.'" />'."\n";
			inhalt .= '<property posX="'.$posX.'" />'."\n";
			inhalt .= '<property posY="'.$posY.'" />'."\n";
			inhalt .= '<property so="" />'."\n";
			inhalt .= '</item>'."\n";
			$posY += 30;
			$counter++;
		}
		else {
			$slice = OOArticleSlice::getFirstSliceForArticle($id);
			$file = $slice->getValue(1);
			inhalt .= '<item>'."\n";
			inhalt .= '<property label="'.$artname.'" />'."\n";
			inhalt .= '<property template="'.$button.'" />'."\n";
			inhalt .= '<property posX="'.$posX.'" />'."\n";
			inhalt .= '<property posY="'.$posY.'" />'."\n";
			inhalt .= '<property so="'.$file.'.xml" />'."\n";
			inhalt .= '</item>'."\n";
			$posY += 15;
		}
	}
}
   
//Inhalt decodieren 
$inhalt = utf8_decode($inhalt);
$inhalt = strtr($inhalt, $array);

//XML-File schreiben
$xml_file = '../files/'.$xmlFile.'.xml';
$fp = fopen($xml_file, 'w');

$write2xml  = $xml_header;
$write2xml .= "\n";
$write2xml .= '<menu>'."\n";
$write2xml .= $inhalt;
$write2xml .= '</menu>';

fwrite($fp, $write2xml);

fclose($fp);

echo "Die Datei <font color=\"990000\">".$xmlFile.".xml</font> wurde erfolgreich erzeugt.<br />";
?>
Ich bin für jeden Denkanstoss dankbar.
Vielen Dank für euer Hilfe, denn damit wäre das Projekt dann fertig :wink:
Euer elricco

Benutzeravatar
elricco
Beiträge: 197
Registriert: 22. Jun 2007, 00:48
Wohnort: Bochum
Kontaktdaten: Website

18. Mai 2008, 17:29

Ja, mööp.

Man sollte ne Variable schon auch als dieselbe deklarieren, wenn man sie füllen will. Was so ein paar Stunden Schlaf nicht alles bewirken...

Gut, Fehler ist ausgemerzt, Datei wird geschrieben aber ohne Inhalt und die Kategorien sowie Artikel sind online...

Jemand ne Idee, doch falsche Syntax?

Danke, elricco

Benutzeravatar
elricco
Beiträge: 197
Registriert: 22. Jun 2007, 00:48
Wohnort: Bochum
Kontaktdaten: Website

18. Mai 2008, 23:29

So, ich hab es jetzt und es funktioniert, aber es ist ein bissl umständlich mit dem array am Anfang. Ich würd eigentlich gerne nur die Unterkategorien des 1. "Menupunkts" ohne seinen Startartikel auslesen. Denn ich denke das ist besser und übersichtlicher, also hier mal mein Code den ich momentan benutze. Danke.

Code: Alles auswählen

<?php

$ids = array( 26, 27, 28, 29, 30 );
// Variablen
$lHead = "lHead";
$lBut = "lBut";
$rHead = "rHead";
$rBut = "rBut";

$posXl = 503;
$posXr = 528;
$posY = 60;

$posX = $posXl;
$head = $lHead;
$button = $lBut;

$xmlFile = sitemap;
$xml_header = <<<EOL
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
EOL;

$array = array('\"' => '"','<em>' => '<i>','</em>' => '</i>','<strong>' => '<b>','</strong>' => '</b>','&ouml;' => 'ö','&auml;' => 'ä','&uuml;' => 'ü','&szlig;' => 'ß','&Ouml;' => 'Ö','&Auml;' => 'Ä','&Uuml;' => 'Ü','&euro;' => '€','&bull;' => '•','&middot;' => '·','<tab>' => '<tab></tab>','<tab>' => '<tab></tab>','&nbsp;' => ' ','&deg;' => '°','&sect;' => '§');



//Counter setzen -> Umbruch
$counter = 0;
//Inhalt XML-Datei zusammenstellen
foreach ($ids as $aid) {
	$categorys = OOCategory::getCategoryById($aid, 0);
	$articles = $categorys->getArticles(true);
	echo $articles[0];
	foreach ($articles as $article){
		$art = new article($article->getId());
		$id = $article->getId();
		echo $id;
		$artname = $article->getName();
		echo $artname;
		if ($article->isStartArticle()) {
			if ($counter > 2) {
				$posX = $posXr;
				$posY = 60;
				$head = $rHead;
				$button = $rBut;
			}
			$posY += 30;
			$inhalt .= '<item>'."\n";
			$inhalt .= '<property label="'.$artname.'" />'."\n";
			$inhalt .= '<property template="'.$head.'" />'."\n";
			$inhalt .= '<property posX="'.$posX.'" />'."\n";
			$inhalt .= '<property posY="'.$posY.'" />'."\n";
			$inhalt .= '<property so="" />'."\n";
			$inhalt .= '</item>'."\n";
			$posY += 30;
			$counter++;
		}
		else {
			$slice = OOArticleSlice::getFirstSliceForArticle($id);
			$file = $slice->getValue(1);
			$inhalt .= '<item>'."\n";
			$inhalt .= '<property label="'.$artname.'" />'."\n";
			$inhalt .= '<property template="'.$button.'" />'."\n";
			$inhalt .= '<property posX="'.$posX.'" />'."\n";
			$inhalt .= '<property posY="'.$posY.'" />'."\n";
			$inhalt .= '<property so="'.$file.'.xml" />'."\n";
			$inhalt .= '</item>'."\n";
			$posY += 15;
		}
	}
}
   
//Inhalt decodieren 
$inhalt = utf8_decode($inhalt);
$inhalt = strtr($inhalt, $array);

//XML-File schreiben
$xml_file = '../files/'.$xmlFile.'.xml';
$fp = fopen($xml_file, 'w');

$write2xml  = $xml_header;
$write2xml .= "\n";
$write2xml .= '<menu>'."\n";
$write2xml .= $inhalt;
$write2xml .= '</menu>';

fwrite($fp, $write2xml);

fclose($fp);

echo "Die Datei <font color=\"990000\">".$xmlFile.".xml</font> wurde erfolgreich erzeugt.<br />";
?>

Zurück zu „Allgemeines [R4]“