Suche


Contenido Navigation als XML exportieren

Zum Artikel: Contenido Navigation als XML exportieren

Posted on | August 18, 2008 |

Um die Contenido-Navigation als XML auszugeben, wird zuerst eine Klasse xmlnav angelegt und mit einer Datenbankverbindungsfunktion versehen, weils für das Beispiel einfach praktisch ist:

class xmlnav {

function connect()
{
include “config.inc.php”; //enthält nur Datenbanklogin
$this->dbuser = $DBUSER;
$this->dbpass = $DBPASS;
$this->dbhost = $DBHOST;
$this->dbname = $DBNAME;

$dbh = mysql_pconnect($this->dbhost,$this->dbuser,$this->dbpass);

if(!is_resource($dbh))
{
echo “Es gab einen schwerwiegenden Fehler. Bitte versuchen Sie es später wieder”;
}
else
{
mysql_select_db($this->dbname,$dbh);
return $dbh;
}
}
}

Danach braucht es Funktionen die die Tabelle mit der Navi auslesen und daraus XML erstellen :

/*
Funktion zur Rückgabe der
URL-Namen aus der Tabelle con_art_lang
Feld = urlname;
*/

function get_urlname()
{
$arrUrlname = array(); //Array zum Auffangen der urlnamen

$query = “SELECT * FROM con_art_lang”;
$result = mysql_query($query,$this->connect());

while($row = mysql_fetch_assoc($result))
{
array_push($arrUrlname,$row['urlname']);
}

return $arrUrlname; //Rückgabe des Arrays mit den urlnamen
}

/*
Funktion zur Erstellung des xml-Files mit der
URL-Namen-Navigation.
*/

function create_xml_from_urlname()
{
$arrUrlnameFromFunction = $this->get_urlname(); //Array zum Speichern der urlnamen aus der Rückgabe der o.s. Funktion

echo “<xmlnav>”;

foreach($arrUrlnameFromFunction as $value)
{
//Kleinschreibung
$value = strtolower($value);

//Startseite erkennen
if(eregi(’artseite’,$value)) { $value = “/”; }
echo “<nav name=’$value’ />”;
}

echo “</xmlnav>”;

}

Die ganze Klasse sieht dann so aus:

<?php
/*
* Created on 29.01.2007
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/

class xmlnav {

function connect()
{
include “config.inc.php”;
$this->dbuser = $DBUSER;
$this->dbpass = $DBPASS;
$this->dbhost = $DBHOST;
$this->dbname = $DBNAME;

$dbh = mysql_pconnect($this->dbhost,$this->dbuser,$this->dbpass);

if(!is_resource($dbh))
{
echo “Es gab einen schwerwiegenden Fehler. Bitte versuchen Sie es sp&auml;ter wieder”;
}
else
{
mysql_select_db($this->dbname,$dbh);
return $dbh;
}
}

/*
Funktion zur Rückgabe der
URL-Namen aus der Tabelle con_art_lang
Feld = urlname;
*/

function get_urlname()
{
$arrUrlname = array(); //Array zum Auffangen der urlnamen

$query = “SELECT * FROM con_art_lang”;
$result = mysql_query($query,$this->connect());

while($row = mysql_fetch_assoc($result))
{
array_push($arrUrlname,$row['urlname']);
}

return $arrUrlname; //Rückgabe des Arrays mit den urlnamen
}

/*
Funktion zur Erstellung des xml-Files mit der
URL-Namen-Navigation.
*/

function create_xml_from_urlname()
{
$arrUrlnameFromFunction = $this->get_urlname(); //Array zum Speichern der urlnamen aus der Rückgabe der o.s. Funktion

echo “<xmlnav>”;

foreach($arrUrlnameFromFunction as $value)
{
//Kleinschreibung
$value = strtolower($value);

//Startseite erkennen
if(eregi(’artseite’,$value)) { $value = “/”; }
echo “<nav name=’$value’ />”;
}

echo “</xmlnav>”;

}

}

Jetzt beötigen wir lediglich noch eine PHP-Datei, welche die Klasse includiert und PHP zurückgibt:

<?php
header(”Content-Type: text/xml”);
echo “<?xml version=’1.0′ ?>”. “\n”;
include ‘class.xmlnav.php’;
$xmlnav = new xmlnav();
?>

<?php
$xmlnav -> create_xml_from_urlname();
?>

Diese Datei kann nun als XML-Quelle verwendet werden.

Comments

Leave a Reply