virtueller Rundgang
Andreas
- php
Hallo,
ich möchte auf einer Seite einen virtuellen Rundgang erstellen.
Als Vorlage dient mir dazu:
http://www.vorderer-sternen.ch/rundgang/ro_0_1378.asp
Mir fehlt es momentan am Geistesblitz wie ich das realisiere. Also wie z.B. gebe ich die Information dem nächsten geladenem Bild mit, welche Buttons aktiv sind, und wie die weiteren Links lauten.
Könnt ihr mir auf die Sprünge helfen?
Gruß Andreas
Servus,
naja zwei Ideen von mir:
1. Der Button wird mit dem Bild... etc. als gesammtes Dokument ausgeliefert.
Dann kannst Du Serverseitig die Links entprechend beeinflussen.
Aus einer Liste/ Tabelle oder woher auch immer holst Du Dir einfach die "Ziele".
Zb.B.
00001 bild1.jpg
00002 bild2.jpg
00003 bild3.jpg
Naja Dein Script liefert dann für den jeweiligen Button entweder getpage.php?Bildid=00001
Das Bild hat selbst dann die URL images/bild2.jpg
und der vorwärtsbutton getpage.php?Bildid=00001
Wenn Du es so wie ich hier beschreieben machst. Mit einer forlaufenden Nummer z.B. kannst Du auch einfach die Navigation als Jscript realisieren indem Pro klick dann eben der Zähler um eines hoch gesetzt wird.
Ich hoffe ich habs verständlich erklärt.
Gruss Matze
Hallo,
ja so was ähnlich hatte ich auch schon im Sinn.
In einer Tabelle speichere ich z.B. den Vorgänger und mögliche Nachfolger mit jeweils Bildname, Button-Nr. etc.
ID|Aktuell|Vorgänger|Nachfolgebild1|Button1|Nachfolgebild2|Button2...
1|1|0|"Bild2"|1|""|0...
Im obigen Beispiel hat die ID1 einen Nachfolger dessen Link ich auf Button1 lege.
Denkst du das ist so machbar?
Andreas
Servus,
viel zu Aufwendig.
Musst Du Dir doch alles gar nicht merkenn wenn Du das per PHP machst.
Mit dem Aufruf weisst Du doch woher der Benutzer kommt oder?
Ohne Parameter gibt es keinen Zurück Button und es wird das erste Bild angezeigt.
der weitere Button ruft ID "2" auf.
So und ab da gilt dann:
Zurück = ID Aufruf -1
Anzeige Bild = Aufruf ID
Vorwärts = Aufruf ID + 1
Hierfür benötigst Du nicht einmnal eine Datenbank, wenn Du Dir die Liste direkt aus dem Verzeichn is ziehst.. udn die Verfügbarkeit der Bilder garantieren kannst.
Wenn Du die bilder ala bild1.jpg etc benennst ist das sogar ohne Listen des Verzeichnisses drin. Du musst dann nur noch die Anzahl der Bilder Berpckstüchtigen.
Wenn es eine Schleife werden soll. Dann musst Du eben die Anzahl mit berücksichtigen.
-> Schleife.. nach letzdem Bild folgt wieder das erste.
Dann musst Du die aufrufid prüfen
Bei weiter bedeutet das:
Wenn Aufruf ID = Anzahl, dann ist das nächste Bild Nummer 1
Bei mzurück:
Wenn Aufruf ID = 1 Dann ist das nächste Bild die Anzahl.
Die aufruf ID ist immer das aktuelle bild z.B. nummer 2.
Ich hoffe das war nun nicht zu kompliziert. :-)
Bin heute kein guter Erklärer.
Gruss Matze
Hi,
Vorwärts = Aufruf ID + 1
leider nicht ganz so einfach, da mehrere Nachfolger gibt, z.B. nach links gehen, nach rechts gehen etc.
Andreas
Nayja auch nicht schwieriger.
Musst eben beide positionen übergeben.
getpic.php?xpos=2&ypos=2
Wie Du dann die dateien ablegst ist eine andere Frage ivh würde es so machen:
bildy1x1.jpg
Naja und das weiter vorgehen wie oben beschrieben.
Gruss Matze
Naja in dem Fall sieht es dann so aus:
Nach links: = AUFRUF X - 1 Aufruf Y = Y
Nach rechts: = AUFRUF X + 1 Aufruf Y = Y
Nach unten: = AUFRUF X =X Aufruf Y - 1
Nach oben: = AUFRUF X = x Aufruf Y + 1
Ich hoffe, ich hab nun nicht X und Y auf dem koordinatenkreuz vertauscht.
Oder soll es auch noch ggf. 3 Dimensional weden??
Gruss Matze
Hi,
Oder soll es auch noch ggf. 3 Dimensional weden??
nein, alles auf einer Ebene.
Aber du hast mir schon sehr geholfen, danke.
Gruß Andreas
Hallo,
habe jetzt eine Lösung gefunden, eigentlich sogar recht simple.
Pro Bild ein Case im Switch:
switch($action){
case 'b1':
echo '<img src="gfx/rundgang/1b1.jpg" width="300" alt=""></td></tr>';
navi(0,1,0,1,0,0,0,2,0,3,0,0);
break;
case 'b2':
echo '<img src="gfx/rundgang/1b2.jpg" width="300" alt=""></td></tr>';
navi(0,0,0,0,1,0,0,0,0,0,1,0);
break;
case 'b3':
echo '<img src="gfx/rundgang/1b4.jpg" width="300" alt=""></td></tr>';
navi(0,0,1,0,1,0,0,0,4,0,1,0);
break;
case 'b4':
echo '<img src="gfx/rundgang/1b3.jpg" width="300" alt=""></td></tr>';
navi(1,1,0,0,1,0,0,0,0,0,3,0);
break;
case 'b5':
echo '<img src="gfx/rundgang/1b5.jpg" width="300" alt=""></td></tr>';
navi(0,1,0,1,0,0,2,4,0,0,3,0);
break;
default:
echo '<img src="gfx/rundgang/1b1.jpg" width="300" alt=""></td></tr>';
navi(0,1,0,1,0,0,0,2,0,3,0,0);
}
...
Dann die Funktion für die Buttons:
function navi($bu1, $bu2, $bu3, $bu4, $bu5, $bu6, $li1, $li2, $li3, $li4, $li5, $li6){
echo '
<tr>
<td align="center" valign="top">';
if ($bu1==1)
echo '<a href="rundgang.php?action=b'.$li1.'">';
echo '<img src="gfx/rundgang/bild1'; if($bu1==1) echo 'a'; echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
if ($bu2==1)
echo '<a href="rundgang.php?action=b'.$li2.'">';
echo '<img src="gfx/rundgang/bild2'; if($bu2==1) echo 'a'; echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
if ($bu3==1)
echo '<a href="rundgang.php?action=b'.$li3.'">';
echo '<img src="gfx/rundgang/bild3';
if($bu3==1) echo 'a';
echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
echo '</td>
</tr>
<tr>
<td align="center" valign="top">';
if ($bu4==1)
echo '<a href="rundgang.php?action=b'.$li4.'">';
echo '<img src="gfx/rundgang/bild4';
if($bu4==1) echo 'a';
echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
if ($bu5==1)
echo '<a href="rundgang.php?action=b'.$li5.'">';
echo '<img src="gfx/rundgang/bild5';
if($bu5==1) echo 'a';
echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
if ($bu6==1)
echo '<a href="rundgang.php?action=b'.$li6.'">';
echo '<img src="gfx/rundgang/bild6';
if($bu6==1) echo 'a';
echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
echo '</td>
</tr>';
}
Für jeden Button wird also die Information ein/aus sowie die mit dem Link ausgelöste action.
Das Ergebnis noch mit Testbildern kann sich auch sehen lassen, siehe URL.
Gruß Andreas
Servus,
Ähhhh.
Naja also also PHP ist leider nicht meine Stärke.
Aber das was Du da gemacht hast ist zu aufgebläht.
Und glaube auch soweit ich es eben mal schnell verstanden hab auch gedanklich falsch.
Schreib doch eine Funktion, die Meinetwegen die Werte in ein Array schreibt.
Schreibe eine zweite Funktion, die das HTML füllt und die Werte aus dem Array einsetzt.
-> Aber setze die Daten nicht in solchen Liste rein.
Finde eine Berechnung die das tut was Du benötigst.
z.B.
Button1 ="x0y2"
Button2 ="x0y1"
Button3 ="x0y3"
usw.
Die Routine die Du benötigst. Berechnet Die Werte entsprechend und weiss,
wenn Button 1 gedrückt wird kommt der Aufruf:
Rundgang.php&xpos=0undypos=2
Du wertes dass aus und merkst dann:
Aha xpos=0 und ypos=2;
Die Regel ist nun für Button 1 immer:
xpos = xpos und ypos= ypos+1 z.B.
Nimm den Wert und schreibe das dann entsprechend ins dokument.
Aktuell hast Du ja hinter jedem Button ein bild hinterlegt.
-> Aber wenne s mal viele Bilder sind, liegt eben nicht hinter einem Button ein bestimmtes Bild sondern, der Button definiert nur was gemacht werden soll.
Numm einfach ein Bild, dass in 3 längs Streifen und 3 quer Streifen
zerteilt ist.
Das unterste lionke bild heisst:
x0y0
das rechts daneben x1y0 das rechte x2y0
Die Nächte Reihe:
-----------------------
| x0y2 | x1y2 | x2y2 |
-----------------------
| x0y1 | x1y1 | x2y1 |
-----------------------
| x0y0 | x1y0 | x2y0 |
-----------------------
Und was Deine Buttons machen ist folgendes. Sie bewegen den Fokus auf dem Rechteck von Bild nach bild.
Also eines links oder eines recht oder sogar eines links und nach oben usw....
Ich hoffe das hilft Dir bei der Überlegung
Gruss Matze
Da ist übrigens noch ein Fehler....
Wenn ich am Anfang nach links gehe, sehe ich das Bild an dr Wand.
drücke ich dann z.B: nach rechts oben... dann würde ich erwarten stehe ich vor dem Fenster. Ich stehe aber dann vor dem Schrank rechts vom Fenster gehe ich dann nach gerad aus,
würde ich in den Schrank gehen... komme jedoch links beim Fenster raus (ausgangpnkt). Jedoch zum "Raum" am anfang nach vorne... da komme ich nur einmal hin. Warum kann ich da beim Schrank nicht nach links gehen ?
Mir scheint es unlogisch.
Gruss Matze
Hallo,
Da ist übrigens noch ein Fehler....
Nein, denke nicht. Die Bilder sind doch Dummies, haben also nichts zu bedeuten bez. Richtung etc. Auch die vorliegende Richtung ist nur zum Test erstellt worden, die Eigentlichen Bilder und gehrichtungen existieren noch nicht.
Zur vorletzen Mail. Denke nicht dass zu umständlich. Jeder Button kann beliebig unterschieliche actions hervorrufen, so dass deine vorgeschlagene Methode so nicht funktionieren würde.
Und mit jeder neuen Action werden 1 bis 6 Buttons aktiviert.
Wie sollte sowas einfacher gehen?
Habe wirklich für das ganze nicht viel mehr Code als der den ich gepostet habe.
Gruß Andreas
Servus,
einfach geht es, wenn Du den Plan in einem Array hinterlegst.
Dann kann man es besser erkennnen wird es ersichtlicher und logischer und Du musst nicht in verschiedenen
Arrays für jeden Button Deine definitionen stellen. Ist zu Fehleranfällig.
Machs einfach so:
Definier für eine Zahl eine bestimmter Action wenns schon so viele für nen Button sein sollen.
Nimm ein Array und halte Fest:
X = hierbei null also leer.
1 2 x 3 4 5 6 7 8 9
2 3 4 5 x 6 7 8 9 0
3 4 5 6 7 8 x 9 0 1
5 6 7 x 8 9 0 1 2 3
1 2 x 3 4 5 6 7 8 9
2 3 4 5 x 6 7 8 9 0
3 4 5 6 7 8 x 9 0 1
5 6 7 x 8 9 0 1 2 3
Nehmen wir an du hast einen solchen "Plan" Dann steht jede Zahl für ein verfügbares Bild und die ggf. hinterlegte Funktion Deines Buttons.
Dein Code brauch nun also nur noch die Info, wo Du gerade stehst also die x - y koordinate.
Alles drumherum liest Du brav aus. Eine Bewegung in ein "X" schliesst Du durch den Code aus, in dem der Button disabled wird.
Der Unterschied zu Deinem code:
Zentrale Daten und nur eine Methodik um die Buttons und die Bildanzeige zu handeln.
Wiederverwendbare Code keine Rdundanz soweit.
Eine Änderung die sich auf alle Buttons auswirkt müsste da mehrmals gecodet werden.
Gruss Matze
Servus,
darüber hinaus fällt mir mgerade ein, ist Deine Idee schlecht erweiterbar.
Während Du bei mir in einer z.B. Tabelle die Daten pflegen könntest,
müsstest Du nichts mehr machen, als Deine Anwendung klar definiert ansprechen. Nehmen wir an, Du nimmst einen weiteren Plan, dann
erhöhst Du einfach die x - y Koordinaten, damit Du in der liste an die richtige Postition gelangst.
Keine buton Namen nix. einzig, damit dr Benutzer nicht vom einen in den andere Plan gelangt, musst Du mit "X" die Pläne eingrenzen.
Bei Deinem Code bist Du immer davon anhängig, wie Deine Buttons heissen.
Bei meinem ist es geal und wenn Du plätzlich 1000 haben wolltest. Lediglich die Werte die notwendig sind, musst Du übergeben.
Du müsstest Dir ja dann gewissermassen zu jedem Plan in Deiner Anwendung ein "matching" quasi mit programieren, dass auf die umgebung passt. Damit schwillt der Code bei unzählig unterschiedlichen begehbaren Räumen ganz schön an.
Bei mir fütterst Du nur die Daten.
Gruss Matze
Hallo,
jetzt ist es mir klarer, wie du das mit den X und Y- Koordinaten gemeint hast. Also entweder in einem mehrdimensionellen Array oder eben in einer Tabelle speichern.
Denke ich werde mein Code nochmals überarbeiten. Danke für deine Hilfe.
Gruß Andreas
<^-------^>
|(-) (-)|
| º |
| ´\_/´ |
<^-------^>
Servus,
No Prob. viel spass beim coden.
und lass uns mal das ganze sehen.
Gruss Matze
Hallo,
klar werde ich die Seite dann mal vorstellen (nach dem ich es validiert habe, *Asche auf mein Haupt streu*)
Wird aber noch ein paar Wochen dauern vorallem die Grafiken machen ziemlich Arbeit. Bislang sind noch geborgte Enthalten, diese werden dann durch eigene ersetzt.
Gruß Andreas
Hello,
erstens finde ich diesen Rundgang Mist, weil man kaum die Orientierung behält...
Aber die Idee mit der Navigation ist schon ganz gut.
+-----+ +-----+ +-----+
| | | | | |
| 1 | | 2 | | 3 |
| | | | | |
+-----+ +-----+ +-----+
+------------------------------+
| |
+-----+ | | +-----+
| | | | | |
| 4 | | | | 5 |
| | | | | |
+-----+ | | +-----+
| |
+------------------------------+
+-----+ +-----+ +-----+
| | | | | |
| 6 | | 7 | | 8 |
| | | | | |
+-----+ +-----+ +-----+
So würde ich mir das vorstellen.
Ein zentrales Bild und darum ein paar Thumbs, wohin es als nächstes führt.
Wenn Du ein geschicktes Format nimmst, kannst Du die Thumbs immer als verkleinerten
Ausschnitt aus dem großen Bild automatisch generieren.
Du benötigst also nur ein Satzformat:
T_LOCATION
============
ID_LOCATION
-----------
Center (VarChar(60)
Description (TinyText)
D1 (bigint unsigned)
D2
D3
D4
D5
D6
D7
D8
in D1 bis D8 stehen die IDs der anderen Vollbilder, wenn es welche gibt.
Und nun benötigst Du nur eine Abfragefunktion, die bei Klick auch ein Thumb
den Datensatz mit dem Vollbild holt, und den Bildpfad und die Beschreibung
ins Template einträgt, dann das Set mit den anderen acht Bildpfaden beschafft.
where ID_LOCATION in ($D1, $D2, $D3, ..., $D8);
Die Thumbs kannst Du on-the-fly berechnen lassen, dann musst Du nur an die Funktion
im Template die ID übergeben, oder Du speicherst zu jedem Vollbild auch ein Thumb, dann
bist Du mit dem Ausschnitt freier und kannst den auch mal etwas verschieben.
Die Puristen unter den Programmieren werden unschwer entdecken können, dass man das obige Satzformat auch noch normalisieren könnte ...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
sorry, hatte dein Posting total übersehen.
Die Idee mit den Thumbnails um das jeweils aktuelle Bild ist nicht schlecht, werde darüber mal nachdenken.
Bezüglich der Übersichtlichkeit:
Es fehlt noch die andere Hälfte des Systems.
Neben der Grafik möchte ich einen groben Grundriss anzeigen, und die jeweilige Position z.B. mit einem roten Punkt, Pfeil oder ähnliches markieren.
Aber ich fürchte das wird zu umständlich, da ist natürlich dein Vorschlag einfacher realisierbar.
Gruß und Danke
Andreas
Hello,
sorry, hatte dein Posting total übersehen.
Die Idee mit den Thumbnails um das jeweils aktuelle Bild ist nicht schlecht, werde darüber mal nachdenken.
Bezüglich der Übersichtlichkeit:
Es fehlt noch die andere Hälfte des Systems.
Neben der Grafik möchte ich einen groben Grundriss anzeigen, und die jeweilige Position z.B. mit einem roten Punkt, Pfeil oder ähnliches markieren.
Könnte das sein, dass wir am selben Projekt baggern? ;-)
Habe da nämlich gerade eine größere Sache angeschoben, bei der der Kunde augenscheinlich unsere Vorschläge in die Ausschreibung aufgenommen hat. Ich habe mir daher schon im Vorfeld viele Gedanken zu einer sinnvollen, möglichst barrierefreien Navigation durch die Wildnis gemacht...
Schreib doch mal ein email, wenn Du ein Projekt betreust.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
Fange jetzt mal wieder vorne an, die Liste wird sonst zu Groß;)
Also habe jetzt mein Code drastisch vereinfacht, wobei ich für jede weitere Grafik nur ein zusätzliche Array-Zeile anfügen muss.
Hier mein Arbeitsergebnis, Gruß Andreas
if (!isset($action)) $action = 'b1';
$path = 'gfx/rundgang/';
$num = substr($action,1,strlen($action)-1);
$bild1 = array(0,1,0,1,0,0,0,2,0,3,0,0,"1b1.jpg");
$bild2 = array(0,0,0,0,1,0,0,0,0,0,1,0,"1b2.jpg");
$bild3 = array(0,0,1,0,1,0,0,0,4,0,1,0,"1b3.jpg");
$bild4 = array(0,0,0,0,1,0,0,0,0,0,3,0,"1b4.jpg");
$bild5 = array(1,1,0,0,1,0,2,4,0,0,3,0,"1b5.jpg");
echo '
<table border="0" cellspacing="0" cellpadding="0">
<tr><td align="center" valign="top">';
echo '<img src="'.$path.${'bild'.$num}[12].'" alt="" width=300></td></tr>';
navi($num);
echo '</table>';
function navi($num){
Global ${'bild'.$num};
echo '
<tr>
<td align="center" valign="top">';
if (${'bild'.$num}[0]==1) echo '<a href="rundgang.php?action=b'.${'bild'.$num}[6].'">'; echo '<img src="gfx/rundgang/bild1'; if(${'bild'.$num}[0]==1) echo 'a'; echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
if (${'bild'.$num}[1]==1) echo '<a href="rundgang.php?action=b'.${'bild'.$num}[7].'">'; echo '<img src="gfx/rundgang/bild2'; if(${'bild'.$num}[1]==1) echo 'a'; echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
if (${'bild'.$num}[2]==1) echo '<a href="rundgang.php?action=b'.${'bild'.$num}[8].'">'; echo '<img src="gfx/rundgang/bild3'; if(${'bild'.$num}[2]==1) echo 'a'; echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
echo '</td></tr><tr>td align="center" valign="top">';
if (${'bild'.$num}[3]==1) echo '<a href="rundgang.php?action=b'.${'bild'.$num}[9].'">'; echo '<img src="gfx/rundgang/bild4'; if(${'bild'.$num}[3]==1) echo 'a'; echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
if (${'bild'.$num}[4]==1) echo '<a href="rundgang.php?action=b'.${'bild'.$num}[10].'">'; echo '<img src="gfx/rundgang/bild5'; if(${'bild'.$num}[4]==1) echo 'a'; echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
if (${'bild'.$num}[5]==1) echo '<a href="rundgang.php?action=b'.${'bild'.$num}[11].'">'; echo '<img src="gfx/rundgang/bild6'; if(${'bild'.$num}[5]==1) echo 'a'; echo '.gif" alt="" width="32" height="32" border="0" hspace="2" vspace="2"></a>';
echo '</td></tr>';
}
Hello,
und wenn Du jetzt noch Definitionen, Berechnungen und Ausgaben sauber voneinander trennst, dann hast Du DEN Erfolg...
Im Ausgabebereich sollte keine einzige Bedingung mehr stehen, sondern nur noch vorher berechnete Variablen. Die einzige Ausnahme bilden beschränkungen durch Soeicherbegrenzungen, die einen leider dazu zwingen, die langen Schleifen direkt in den Ausgabebereich zu legen. Sonst kann man eigentlich alles vorberechnen. 'Leere' Variablen verurschane dann eben keine Ausgabe. Aber definiert sollten alle sein.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
und wenn Du jetzt noch Definitionen, Berechnungen und Ausgaben sauber voneinander trennst, dann hast Du DEN Erfolg...
leichter gesagt als getan.
Habe mein Code noch weiter vereinfacht und besser Strukturiert. Aber wie ich die Berechnungen etc. von der Ausgabe trennen kann fällt mir ad hoc nicht ein.
Mein Code: wie du siehst übergebe ich jetzt das komplett Array des zu ladenden Bildes.
if (!isset($action))
$action = 'b1';
$path = 'gfx/rundgang/';
$num = substr($action,1,strlen($action)-1);
$bild1 = array(0,1,0,1,0,0,0,2,0,3,0,0,"1b1.jpg");
$bild2 = array(0,0,0,0,1,0,0,0,0,0,1,0,"1b2.jpg");
$bild3 = array(0,0,1,0,1,0,0,0,4,0,1,0,"1b3.jpg");
$bild4 = array(0,0,0,0,1,0,0,0,0,0,3,0,"1b4.jpg");
$bild5 = array(1,1,0,0,1,0,2,4,0,0,3,0,"1b5.jpg");
echo '
<table border="0" cellspacing="0" cellpadding="0">
<tr><td align="center" valign="top">';
echo '<img src="'.$path.${'bild'.$num}[12].'" alt="" width=300></td></tr>';
navi(${'bild'.$num});
echo '</table>';
function navi($arr){
Global $path;
$attib = 'alt="" width="32" height="32" border="0" hspace="2" vspace="2"';
$url = 'rundgang.php?action=b';
For ($i=0; $i<6; $i++){
${'b'.($i+1)} = $arr[$i];
}
For ($i=6;$i<12;$i++){
${'a'.($i-5)} = $arr[$i];
}
echo '
<tr><td align="center" valign="top">';
if ($b1==1) echo '<a href="'.$url.$a1.'">'; echo '<img src="'.$path.'bild1'; if($b1==1) echo 'a'; echo '.gif" '.$attib.'></a>';
if ($b2==1) echo '<a href="'.$url.$a2.'">'; echo '<img src="'.$path.'bild2'; if($b2==1) echo 'a'; echo '.gif" '.$attib.'></a>';
if ($b3==1) echo '<a href="'.$url.$a3.'">'; echo '<img src="'.$path.'bild3'; if($b3==1) echo 'a'; echo '.gif" '.$attib.'></a>';
echo '</td></tr><tr><td align="center" valign="top">';
if ($b4==1) echo '<a href="'.$url.$a4.'">'; echo '<img src="'.$path.'bild4'; if($b4==1) echo 'a'; echo '.gif" '.$attib.'></a>';
if ($b5==1) echo '<a href="'.$url.$a5.'">'; echo '<img src="'.$path.'bild5'; if($b5==1) echo 'a'; echo '.gif" '.$attib.'></a>';
if ($b6==1) echo '<a href="'.$url.$a6.'">'; echo '<img src="'.$path.'bild6'; if($b6==1) echo 'a'; echo '.gif" '.$attib.'></a>';
echo '</td></tr>';