PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Simpleviewer mit dynamischer XML



Hennieliminator
20.11.2008, 14:12
Hallo Leute,
ich verzweilfe gerade innerlich...
Es geht um folgendes:
Ich habe den Simpleviewer (http://www.airtightinteractive.com/simpleviewer/), der aus einem XML file die Gallerie ausließt.
Diese XML datei möchte ich Dynamisch mit php darstellen lassen.. Diese PHP datei soll also die XML datei ersetzen.

Folgendes Problem:


<?php
include("../include.php");
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD);
mysql_select_db(MYSQL_DATABASE);
if(!is_numeric($_GET[id])) {
die("Falsches ID format");
}
$res = mysql_query("SELECT * FROM gallerien WHERE id = '".$_GET[id]."'");
$row = mysql_fetch_assoc($res);
echo('<?xml version="1.0" encoding="UTF-8"?>');
echo('<simpleviewergallery maxImageWidth="480" maxImageHeight="480" textColor="0xFFFFFF" frameColor="0xFFFFFF" frameWidth="0" stagePadding="40" navPadding="40" thumbnailColumns="3" thumbnailRows="3" navPosition="left" vAlign="center" hAlign="center" title="Testgallerie" enableRightClickOpen="false" backgroundImagePath="" imagePath="'.$row[imgpath].'" thumbPath="'.$row[thumbpath].'">');
$res2 = mysql_query("SELECT * FROM bilder WHERE gallerie = '".$_GET[id]."'");
$count = mysql_num_rows($res2);
$i = 0;
while($i < $count) {
echo("
<image>
<filename>wide.jpg</filename>
<caption>Testr123</caption>
</image>");
$i++;
}

?>
</simpleviewergallery>


Das ist das PHP Script, welches die XML Datei Simulieren soll... So wie es jetzt ist, klappt es NICHT.
Wenn ich in der while das $count mit z.b. 10 ersetze oder 1, dann geht es... Wenn ich das in der while mit $bild = mysql_fetch_assoc($res2) ersetze, dann geht es auch nicht.. Letztendlich wird an der eigentlichen Datei, die ausgegeben wird aber nichts verändert... Woran liegt es??


MfG
Henni

ps.: Ich hoff mir kann jmd helfen..^^[/code]

-=Player=-
20.11.2008, 15:31
ich weiß zwar jetzt nicht wie deine datenbank aufgebaut ist aber versuchs mal so:


<?php
include("../include.php");

mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD);
mysql_select_db(MYSQL_DATABASE);

if(!is_numeric($_GET[id])) {die("Falsches ID format");}

$res = mysql_query("SELECT * FROM gallerien WHERE id = '".$_GET[id]."'");
$row = mysql_fetch_assoc($res);

echo('<?xml version="1.0" encoding="UTF-8"?>');
echo('<simpleviewergallery maxImageWidth="480" maxImageHeight="480" textColor="0xFFFFFF" frameColor="0xFFFFFF" frameWidth="0" stagePadding="40" navPadding="40" thumbnailColumns="3" thumbnailRows="3" navPosition="left" vAlign="center" hAlign="center" title="Testgallerie" enableRightClickOpen="false" backgroundImagePath="" imagePath="'.$row[imgpath].'" thumbPath="'.$row[thumbpath].'">');


$sql = "SELECT * FROM bilder WHERE gallerie = '".$_GET[id]."'";
$result = mysql_query($sql) OR die(mysql_error());

while($row2 = mysql_fetch_assoc($result)) {
echo("
<image>
<filename>".$row2['file']."</filename>
<caption>".$row2['name']."</caption>
</image>");
}


?>
</simpleviewergallery>

musst zwar die ausgaben noch umbennen, könnte aber s funktionieren. habs jetzt nicht getestet.

Hennieliminator
20.11.2008, 16:50
nein^^ du hast mich glaube ich falsch verstanden..^^ ich habs evtl doch nich genaugenug erklärt xD

also.. ich versuchs nochmal anders^^ wir vergessen das mit mysql usw ich machs ganz simpel...

Ich habe dieses Script egal wie (auch ohne das <?xml...?> geht beides) und lasse das script mal die xml daten ausgeben... wird dies nun also gemacht, zeigt simpleviewer nichts an, wenn ich diesen code, den das Script ausspuckt, direkt in das Script schreibe, also den ganzen quellcode durh den statischen xml code ersetze, dann geht es.. gott weiß warum, ich nicht^^ (letztendlich habe ich also 2mal den gleichen xml code, nur einmal statisch und einmal dynamisch...)

Gestern Nachmittag, habe ich herrausgefunden, dass simpleviewer den dynamischen code akzeptiert, wenn dort steht while($i < 1), aber nicht wenn da steht while($i < $count) oÄ... kp warum

auf jeden fall funktioniert jetzt wieder GARNICHTS xD ich könnt austicken.. eigentlich hab ich alles richtig gemacht..


MfG
Henni

ps.: das mit dem $row2[file]... hätt ich später auch gemacht, hab das nur ersmal zu testzwecken weggelassen..^^


ich werde das ganze nun mal auf nen ohost acc hochladen und dir/euch alles zeigen^^ vllt. hilft des ja dann ein wenig weiter ;D

DJ-2K
20.11.2008, 17:20
Erstmal wäre das schonmal ne gute Idee ;).

Ich weiß leider nicht wie Flash auf so ein Script zugreift. Bei PHP wäre ich mir ziemlich sicher, dass ein file_get_contents() nichts bringen würde... (Vielleicht mal jemand der sich mit Flash auskennt ein Statement dazu!?).

Ansonsten würde ich mal das XML File validieren lassen, ob es korrektes XML ist und alle Inhalte auch wirklich utf-8 konvertieren.

Hennieliminator
21.11.2008, 08:48
Laut W3C:
# No declaration for document root found, validation was lax
# The schema(s) used for schema-validation had
no errors
# No schema-validity problems were found in the target

Mhh ich schreib die von Simpleviewer mal an..^^

blackberry
21.11.2008, 09:23
Nur um nochmal zusammen zu fassen wie ich das jetzt mitbekommen habe:
Du hast lokal (bzw. auf deinem Webserver) 2 Skripte:
simpleviewer.php xmlgenerator.php
(Namen sind natürlich nur ausgedacht)

Simpleviewer macht sowas wie:

$fp = fopen("xmlgenerator.php", "rb");
// Inhalt analysieren, verarbeiten, ...
(ob fopen oder simplexml_load_file oÄ. benutzt werden ist im Endeffekt ja egal, da sie alle über C's fopen mit Dateien arbeiten -> siehe PHP Sourcecode)

Dann wird das PHP Skript gar nicht ausgeführt sondern direkt der Sourcecode als XML "angenommen".
_________________________

Wenn also oben genannte Bedingungen richtig sind (-> ich nicht nur irgend einen Mist geplappert habe ^^), dann würde ich als Lösung folgendes vorschlagen:
Auf deiner Webseite: Link zu a.php
a.php:

<?php

$fp = fopen("gallery.xml", "wb");
// hier den Inhalt von gallery.xml schreiben
fclose(fp);

header("Location: gallerie.html");

?>

gallery.html ist dann eben die Seite, die deinen SimpleViewer enthält.


Ich hoffe das hat dir weiter geholfen.

Hennieliminator
21.11.2008, 11:42
Naa BlackBerry fast.^^
Simpleviewer ist eine Flash Gallerie (link in meinem ersten Post)

Habs auf ohost hochgeladen, damit ihr es euch anschauen könnt... dort funzt es allerdings, verstehe garnichts mehr xD
henniFH.he.ohost.de

Ich bedanke mich für eure hilfe, werde aber von Simpleviewer absehen und einen anderen Benutzen (Flashgallery heißt das ding)
Dort läuft mein Script einwandfrei... Habe im Simpleviewer forum mehrere mit solchen Problemen gefunden, in den Antworten dazu steht aber leider "DELETED" xD

Naja mit der neuen Gallerie klappt alles wunderbar.. Denke das war ein Fehler in der Flash Programmierung von Simpleviewer...

MfG
Henni