Auf welcher Logik basiert dieses Menü?

Bei einer Homepage die Ich abändern soll wird das Menü dynamisch erstellt, aber ich hab nicht so ganz raus wie!

Hier mal auszüge aus dem quelltext:

[code]/****************************************************************************

  • Definition der Menue-Struktur
    ****************************************************************************/
    $ml_id[0] = 0x000;
    $ml_header[0] = “Megs-Comp/Soft e.K.”;
    $ml_keyname[0] = “home”;

    $ml_id[1] = 0x010;
    $ml_header[1] = “Update-Historie”;
    $ml_keyname[1] = “update”;

    $ml_id[2] = 0x020;
    $ml_header[2] = “Werbezettel”;
    $ml_keyname[2] = “werbezettel”;

    $ml_id[3] = 0x100;
    $ml_header[3] = “Top Angebote”;
    $ml_keyname[3] = “produkte”;[/code]

gibt noch weitere Punkte, schaut einfach auf klakal.dyndns.org/megs/php/main.php?id=0

danach kommt das

[code]/*
$sel_item Id des ausgewaehlten Menuepunkts
$item_id Id des aktuell zu zeichnenden Menuepunkts
$header Ueberschrift
$keyname
*/
function display_item($sel_item, $item_id, $header, $keyname)
{
if (strlen($keyname) == 0)
return;

if (($item_id & 0xff) == 0)
{
/* Hauptpunkt im Menue *********************/
if (($sel_item & 0xff00) == ($item_id & 0xff00))
{
$tag1 = “_h”;
$tag2 = “_h”;
}
else
{
$tag1 = “_r”;
$tag2 = “_n”;
}

  printf("<tr><td>");
  printf("<a href=\"main.php?id=%s\" onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_swapImage('%s','','../picture/menu/%s%s.gif',1)\">", 
     $item_id, $header, $keyname, $tag1);
  printf("<img name=\"%s\" border=\"0\" src=\"../picture/menu/%s%s.gif\" width=\"160\" height=\"24\"></a>", 
     $header, $keyname, $tag2);
  printf("</td></tr>\n");

}
else
if (($sel_item & 0xff00) == ($item_id & 0xff00))
{
/* Unterpunkt im Menue ********************/
printf("

");
     if ($sel_item == $item_id)
        printf("<img src=\"../picture/menu/%s_h.gif\" width=\"160\" height=\"24\">", $keyname);
     else
     {
        printf("<a href=\"main.php?id=%s\" onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_swapImage('%s','','../picture/menu/%s_r.gif',1)\">", 
           $item_id, $header, $keyname);
        printf("<img name=\"%s\" border=\"0\" src=\"../picture/menu/%s_n.gif\" width=\"160\" height=\"24\"></a>", 
           $header, $keyname);
     }

     printf("</td></tr>\n");
  }

}

function create_menu()
{
global $id;
global $ml_id;
global $ml_header;
global $ml_keyname;

$selected_item = $_GET[‘id’] & 0xffff;

for ($i = 0; $ml_id[$i] != 0xffff; $i++)
{
display_item($selected_item,
$ml_id[$i],
$ml_header[$i],
$ml_keyname[$i]);
}
}

function load_html($file_name)
{
global $last_update;

$file = fopen($file_name, “r”);

if ($file)
{
while (!feof($file))
printf("%s", fgets($file));
}
else
die(“Missing file.”);

fclose($file);

$last_update = date(“d.m.Y”, filemtime($file_name));
}

function create_content()
{
global $id;
global $arg;
global $last_update;

switch($_GET[‘id’] & 0xffff)
{
case 0x010: load_html("…/frames/update.htm"); break;
case 0x020: load_html("…/frames/werbezettel.htm"); break;

  case 0x100: 
     $last_update = date("d.m.Y", filemtime("../frames/megspc.h"));
     include '../frames/topangebote.h';
     break;

  case 0x110: /**** Megs PCs ****/
     $last_update = date("d.m.Y", filemtime("../frames/megspc.h"));
     include '../frames/megspc.h'; 
     break;

[/code]

Hoffe ihr könnt mir da weiterhelfen, da menü muss nämlich noch angepasst werden.

Nabend kla_kal :slight_smile:

  1. funzt der Link nicht :slight_smile:
  2. vermute ich stark das der schluss vom Script fehlt :slight_smile:

also meiner bescheidenen Meinung nach legst du oben die Menüpunkte fest, wobei sich die Reihenfolge durch 0x… festlegt. schaut so aus, als würden in der Switch dann die jeweiligen Ziele an den Menüpunkt gehängt.

ausführlich will das heißen:

du definierst am Anfang ein Array namens $ml_id, in Function create_menu wird durch die For Schleife das Array durchlaufen und für jedes Element im Array die Function display_item aufgerufen. Diese prüft dann nur noch ob das Aktuelle Array Element = dem aktuell selektierten Menüpunktes ist und fügt die dementsprechende Grafik ein.

Unterm Strich würd ich sagen, wenn du ein Menüpunkt hinzufügen willst, dann Füge ein Element dem Array hin, willst du eins Weghaben, dann entferne das entsprechende Element aus dem Array. Denk aber daran das $ml_id[…] fortlaufend sein muss, also $ml_id[0], $ml_id[1], $ml_id[2]…
Am Ende nur noch in der Switch Anweisung, welche hier halb fehlt, die entsprechend Anzuzeigende Datei anpassen oder einen entsprendes Case hinzufügen :slight_smile:

hoffe habs ordentlich erklärt, wenn nicht, frag einfach

Grüßle Phil

OK, teilweise ist mir des etz schon klar, nur wie weis ich etz welcher punkt zu welchem zahlencode passt.

sozusagen

1.Produkte =0x010
1.1 PCs = ???
1.2 Latops =???

  1. Service =???
    2.1 Kontakt=???
    2.2 sonstiges =???

also was muss ich etz beachten wenn ich nen unterpunkt hinzufügen will, oder wenn ich nen neuen hauptpunkt machen will.

mfg karl

nabend, grad nochmal die Seite angeschaut :slight_smile:

ich würde sagen:

  1. Home = 0x000
    0.1 Update-Historie= 0x010
    0.2 Werbezettel = 0x020

1.Produkte = 0x100
1.1 PCs = 0x110
1.2 Latops = 0x120

  1. Service = 0x200
    2.1 Kontakt= 0x210
    2.2 sonstiges = 0x220

also:
0x0 - 0x9 -> Hauptmenüpunkt 0 - 9
0x00 - 0x09 -> UntermenüPunkte 0 - 9 Für Hauptmenüpunkt 0
0x10 - 0x19 -> UntermenüPunkte 0 - 9 Für Hauptmenüpunkt 1
0x20 - 0x29 -> UntermenüPunkte 0 - 9 Für Hauptmenüpunkt 2
0x30 - 0x39 -> UntermenüPunkte 0 - 9 Für Hauptmenüpunkt 3
usw.
demnach könntest dur für Submenüs nochmal Submenüs machen:

0x000 -> wäre dann MenüPunkt 0.0.0.
0x001 -> wäre dann MenüPunkt 0.0.1.
0x011 -> wäre dann MenüPunkt 0.1.1.
usw.

und nun erklär ich dir auch noch das ArrayElement:

$ml_id[1] = 0x010; legt zum einen die Position im Menü fest und dient gleichzeitg als Index innerhalb der Navigation ($selected_item)
$ml_header[1] = “Update-Historie”; Der Menüpunkt Name / Beschriftung
$ml_keyname[1] = “update”; irgend nen Schlüssel !?

in deinem Quelltext füllt Header das name Attribut des Tags und in Keyname steht der PicName für das src Attribut des Tags

Denke nun ist es ausführlich genug erklärt :slight_smile:

Also habs etz kapiert, da mir aber des ganze mit der funktion zum bild umschalten net so gefällt, wäre es nicht möglich, das ml_keyname als text zu verwenden, und die “animationen” per css zu gestalten?

vielen dank für die hilfe, des war etz in der ganzen sache a knackpunkt, weil der jenige der des ganze mal programmiert hat bekommt von sonyerricsson einfach net frei…

Guten morgen :slight_smile:

also wirklich schön find ichs so auch nicht zugeb

Aber ich versteh nicht genau was du da jetzt ändern möchtest, der Linktext steht schon im Array, ansonsten kann ich da nicht groß was finden das sich da nicht wiederholen würde. kanns sein das es mal dafür gedacht war, für jeden Link nen Extra Button zu haben oder so?

Ansonsten versteh ich auch nicht wirklich wofür die Links da dynamisch sein müssen, solange du trotzdem am Quelltext fummeln musst, wenn du nen Link hinzufügen oder entfernen möchtest. Ist also ziemlich undurchsichtig. Vielleicht lieber ganz neu machen?

mal am Rande, der Kopf ist wirklich schön, den Hintergrund der Navi find ich irgendwie seltsam mit der Wellenlinie. Vielleicht kannst das Navi auch als Pulldown oben waagerecht unterbringen und machst das Design auf der Seite zentriert.
Is aber auch nur so ne Idee (bei der sich das mit der Navigation eh ändern würde)

Design gibts a komplett neues, da des alte scho seit ca 10 jahren in gebrauch war, ich schreib dir heut am besten mal über icq ok

kk, versuch dein Glück, wenn ne Antwort dann bissel dauert, nicht wundern, sitz nich immer direkt davor :wink: