• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Smoothmenu von DynamicDrive.com

Ronny2

Neues Mitglied
Hallo

Ich habe eine Frage zur Smooth Navigation von dynamicdrive.com.
Ich habe die entspechenden Dateien herunter geladen und versucht, den Menücode in meine eigene Seite zu kopieren. Dieser Vorgang war eigentlich noch kein Problem, meine Seite erscheint und das Menü wird bereitgestellt.
Schreibe ich nun meine gewünschten Links ins Menü (href...) und wähle auf meiner Seite den entsprechenden Link an, so wird die neue Seite angezeigt, dabei verschwindet jedoch die alte Seite inkl. Navigation. Es kann ja nicht sein, dass ich jetzt in jede Unterseite (ca. 300) die Menüstruktur kopieren muss, das wäre ja bei einer Änderung mit einem enormen Aufwand verbunden.

Wie bringe ich dieses Menü zum Laufen, so dass die Menüstruktur nur einmal implementiert werden muss? Geht das evtl. über eine externe Datei, welche man von jeder Seite aus aufruft?
Ich habe auch versucht, das Menü in ein Navigationsframe zu kopieren, da entsteht jedoch das Problem, dass die aufgeklappte Menüstruktur hinter dem Hauptframe verschwindet. Zudem habe ich es nicht fertig gebracht, dass der Link nur im Hauptframe geöffnet wird.

Danke für die Antwort.

Gruss

Ronny
 
Mit php und includen kannst du das machen..

HTML:
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Jep</title></head>
<body>
<div id="menue">
<!-- hier dein Menue. Beispiel für einen Link: -->
  <a href="index.php?inhalt=1">Bereich 1</a>  
</div>
<div id="main">

HIER KOMMT DER FOLGENDE PHP CODE REIN

</div>
</body>
</html>
PHP:
<?php
//php Standardkram
if(isset($inhalt))
  switch($inhalt )
  {
    case 1: 
            include("bereich1.php");
            break;
    case 2:
            //...
            break;

    default: break;
  }
  else
    include("default.php");
    
?>
mehr dazu über google,
zB include statt frames - Google-Suche
PHP Include und div- statt Frames Webseite erstellen

Dein Server muss dafür PHP können, außerdem muss die (meist index-) Hauptseite eine php Datei sein, statt html. Um das zu erreichen reicht es die Dateiendung von .htm(l) zu .php zu ändern.
Allerdings solltest du dich dann auch etwas mit PHP beschäftigen damit du nicht plötzlichen Sicherheitslücken in deine Seite ballerst.
 
Kein Erfolg

Hallo

Ich bin nun endlich einmal dazu gekommen, den Vorschlag mit dem Includen zu versuchen. Leider habe ich keinen Erfolg damit. Es erscheint eine leere Seite, das Menü wird nicht geladen.

Meine Navi.php sieht folgendermassen aus:
HTML:
<div id="navi">
<p>
id="smoothmenu1" class="ddsmoothmenu">
<ul>
<li><a  href="test.html"  target="subHauptframe">Startseite</a></li>
<li style="z-index: 100;"><a style="padding-right: 23px;"  href="#">Tagebuch<img src="ddsmoothmenu-Dateien/down.gif"  class="downarrowclass" 
style="border: 0pt none;"></a>
  <ul style="display: none; top: 30px; visibility: visible;">
  <li><a href="#">Sub Item 1.1</a></li>
  <li><a href="#">Sub Item 1.2</a></li>
  <li><a href="#">Sub Item 1.3</a></li>
  <li><a href="#">Sub Item 1.4</a></li>
  <li><a href="#">Sub Item 1.2</a></li>
  <li><a href="#">Sub Item 1.3</a></li>
  <li><a href="#">Sub Item 1.4</a></li>
  </ul>
</li>
<li style="z-index: 99;"><a style="padding-right: 23px;"  href="#">Folder
 1<img src="ddsmoothmenu-Dateien/down.gif" class="downarrowclass" 
style="border: 0pt none;"></a>
  <ul style="display: none; top: 30px; visibility: visible;">
  <li><a href="#">Sub Item 1.1</a></li>
  <li><a href="#">Sub Item 1.2</a></li>
  <li><a href="#">Sub Item 1.3</a></li>
  <li><a href="#">Sub Item 1.4</a></li>
  <li><a href="#">Sub Item 1.2</a></li>
  <li><a href="#">Sub Item 1.3</a></li>
  <li><a href="#">Sub Item 1.4</a></li>
  </ul>
</li>
<li><a href="#">Item 3</a></li>
<li style="z-index: 98;"><a class="" style="padding-right:  23px;" 
href="#">Folder 2<img src="ddsmoothmenu-Dateien/down.gif" 
class="downarrowclass" style="border: 0pt none;"></a>
  <ul style="top: 30px; visibility: visible; left: 0px; width: 171px;  
display: none;">
  <li><a href="#">Sub Item 2.1</a></li>
  <li style="z-index: 97;"><a href="#">Folder 2.1<img 
src="ddsmoothmenu-Dateien/right.gif" class="rightarrowclass" 
style="border: 0pt none;"></a>
    <ul style="display: none; top: 0px; visibility: visible;">
    <li><a href="#">Sub Item 2.1.1</a></li>
    <li><a href="#">Sub Item 2.1.2</a></li>
    <li style="z-index: 96;"><a href="#">Folder 3.1.1<img  
src="ddsmoothmenu-Dateien/right.gif" class="rightarrowclass" 
style="border: 0pt none;"></a>
        <ul style="display: none; top: 0px; visibility: visible;">
            <li><a href="#">Sub Item  3.1.1.1</a></li>
            <li><a href="#">Sub Item  3.1.1.2</a></li>
            <li><a href="#">Sub Item  3.1.1.3</a></li>
            <li><a href="#">Sub Item  3.1.1.4</a></li>
            <li><a href="#">Sub Item  3.1.1.5</a></li>
        </ul>
    </li>
    <li><a href="#">Sub Item 2.1.4</a></li>
    </ul>
  </li>
  </ul>
</li>
<li><a href="http://www.dynamicdrive.com/style/">Item  4</a></li>
</ul>
<br style="clear: left;">
</p>
</div>
Nun müsste ich doch in der Hauptdatei ddsmoothmenu.php mit dem include diesen code holen können?!

HTML:
<title>Dynamic Drive DHTML Scripts- Smooth Navigational Menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="A folding DHTML menu tree with 
persistance feature, created via cookies.">
<meta name="keywords" content="DHTML, folding menu tree script, DHTML 
tutorial, free, JavaScript,persistance">
<link rel="stylesheet" type="text/css" 
href="ddsmoothmenu-Dateien/mainstyle.css">

<link rel="stylesheet" type="text/css" 
href="ddsmoothmenu-Dateien/ddsmoothmenu.css">
<link rel="stylesheet" type="text/css" 
href="ddsmoothmenu-Dateien/ddsmoothmenu-v.css">

<script type="text/javascript" src="ddsmoothmenu-Dateien/jquery.js"></script>
<script type="text/javascript" src="ddsmoothmenu-Dateien/ddsmoothmenu.js">

/***********************************************
* Smooth Navigational Menu- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

</script>

<script type="text/javascript">

ddsmoothmenu.init({
mainmenuid: "smoothmenu-ajax",
//customtheme: ["#1c5a80", "#18374a"], //override default menu CSS background values? Uncomment: ["normal_background", "hover_background"]
contentsource: ["smoothcontainer", "smoothmenu.htm"] //"markup" or ["container_id", "path_to_menu_file"]
})


ddsmoothmenu.init({
    mainmenuid: "smoothmenu1", //menu DIV id
    orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"
    classname: 'ddsmoothmenu', //class added to menu's outer DIV
    //customtheme: ["#1c5a80", "#18374a"],
    contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
})

ddsmoothmenu.init({
    mainmenuid: "smoothmenu2", //Menu DIV id
    orientation: 'v', //Horizontal or vertical menu: Set to "h" or "v"
    classname: 'ddsmoothmenu-v', //class added to menu's outer DIV
    //customtheme: ["#804000", "#482400"],
    contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
})



</script><style type="text/css">
#smoothmenu-ajax, #smoothmenu-ajax ul li a {background:#1c5a80;}
#smoothmenu-ajax ul li a:hover {background:#556677;}
</style>

<?php
  include_once("navi.php");
?>

<!--webbot bot="HTMLMarkup" endspan i-checksum="33107" -->
</body></html>
setze ich den Code aus der navi.php dazwischen, so funktioniert die Seite.

Sorry, ich kenne mich leider in html und php nicht wirklich aus. :sad:

Danke für weitere Antworten.

Gruss

Ronny
 
Da passt sicherlich der Pfad nicht. Die Include-Pfade beziehen sich immer auf das Verzeichnis der ursprünglich aufgerufenen Script-Datei.

Ein Beispiel:

Code:
/
    index.php
    library/
        ddsmoothmenu.php
        navi.php


Wenn die aufgerufene Scriptdatei index.php ist, sähe die Einbindung von ddsmoothmenu.php in index.php so aus:

Code:
include 'library/ddsmoothmenu.php';

Und die Einbindung von navi.php in ddsmoothmenu.php entweder so:

Code:
include 'library/navi.php';

Oder über die magische Konstante __DIR__:

Code:
include __DIR__ . '/navi.php';

- PHP: Magic constants - Manual

Falls das nicht hilft, ersetze mal das include_once durch ein require_once, das dürfte zumindest eine aussagekräftige Fehlermeldung liefern.
 
Zurück
Oben