[HTML/PHP] übergeordneten Ordner öffnen edit: JavaScript laden

MaxFleit

web2systems
ID: 308871
L
15 Januar 2008
293
28
Hallo,
ich habe ein Frage wie ich etwas hinkriege.

Ich möchte einen Ordner anlegen wo z.B. alle Dateien liegen für eine bestimmte Kategorie sagen wir jetzt z.B. Spiele.

Im Hauptverzeichnis include ich zwei Dateien folgendermaßen.

PHP:
<?php 
include 'header.php';
include 'menue.php';
?>

Wie bekomme ich das jetzt hin im Ordner /games das er die aus dem Hauptverzeichnis includet oder sogar in einem Ordner im Hauptverzeichnis?



Gruss
Max

Hoffe ihr konntet mich verstehen
 
Zuletzt bearbeitet:
PHP:
<?php 
include '../header.php';
include '../menue.php';
?>
Oder sogar:
PHP:
<?php 
include '../includes/header.php';
include '../includes/menue.php';
?>
 
Hallo,
habe ein neues Problem, ich include immer den kompletten Header in Form einer PHP. So jetzt habe ich ein JS was auf einer Unterseite ausgeführt wird.

Jetzt will ich aber nicht, das das auf jeder Seite sondern nur auf der geladen wird, gibt es eine Möglichkeite den <head> Teil wieder zu öffnen auf der Seite um was hinzuzufügen oder sonst eine Möglichkeit?
 
Ich würde einfach die benötigten Scripts je nach Seite in ein Array schreiben und dann via PHP ausgeben.

Ich nutze dazu eine kleine Klasse:
PHP:
<?php
	// Script-Loader-Klasse
	
	class ScriptLoader {
		
		private $scripts = array();
		private $baseURL;
		
		public function __construct($baseURL) {
			$this->scripts = array();
			$this->baseURL = $baseURL;
		}
		
		public function addScript($name, $path, $version = '') {
		
			$this->scripts[$name] = array('path' => $path, 'version' => $version);
		
			return true;
	
		}
		
        public function removeScript($name) {
			
		
			if(isset($this->scripts[$name]))
				unset($this->scripts[$name]);
			else
				return false;
			
			return true;
	
		}
		
		public function printScripts() {
			if(!empty($this->scripts)) {
				foreach($this->scripts AS $script)
					echo '<script type="text/javascript" src="' . $this->baseURL . $script['path'] . '?' . $script['version'] . '"></script>' . "\n";
				
				$this->scripts = array();
			}	
		
		}
	
	
	}
?>

Benutzung:

PHP:
<?php 
    $scripts = new ScripLoader('https://example.com/javascripts/');
    
    // je nach Seite verschiedene Scripts laden
    if($site == 'start')
        $scripts->addScript('jQuery', 'jquery.js', '1.2.6');
    
?>

Je nach Seitenstruktur musst du das halt anpassen.

Im <head>-Bereich schreibste dann aber einfach: $scripts->printScripts(); und fertig.

Greetz

paddya
 
Danke für die Hilfe, aber ich verstehe noch nicht so ganz.

Ich habe folgendes:

Header.php
PHP:
<head>

  <link rel="stylesheet" media="screen" href="css/style.css" type="text/css" />

  <meta http-equiv="content-type" content="text/html;charset=utf-8" />

  <meta http-equiv="imagetoolbar" content="no" />

<!--[if lt IE 7]> <link rel="stylesheet" media="screen" href="css/ie.css" /> <![endif]--><!--[if lt IE 6]> <link rel="stylesheet" media="screen" href="css/ie5.css" /> <![endif]-->
  
  
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>

<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />

</head>


Diese Datei include ich in jede Seite, aber ich möchte, dass die js Scripte nur geladen werden meinetwegen auf seite galerie.php. Wie bekomme ich das hin, weil der Headbereich ist dann ja schon geschlossen wenn die galerie.php anfängt.


Wäre super wenn mir jemand kurz das nochmal erklären könnte mit dem Array und so.
 
Du weißt ja bereits ganz am Anfang des Scripts, welche Seite aufgerufen wird (sei es über den GET-Parameter oder weil die Datei direkt aufgerufen wird). Anhand dieser Information kannst du die benötigten Scripts dann hinzufügen.

Beispiel: Du rufst die Datei galerie.php direkt auf.

PHP:
    $scripts = new ScriptLoader('URL zum Ordner mit deinen JavaScripts');
    // Wir wissen bereits: die aktuelle Datei ist die galerie.php, also können wir ohne Probleme die benötigten Scripts angeben.
    $scripts->addScript('script1', 'script1.js', 'v1');
    include '../header.php';

Anders sieht es aus, wenn du alles via GET-Parameter in beispielsweise die index.php inkludierst:

PHP:
    $scripts = new ScriptLoader('URL zum Ordner mit deinen JavaScripts');
    // Diesmal müssen wir mit einer Abfrage arbeiten:
    if($_GET['site'] == 'galerie')
        $scripts->addScript('script1', 'script1.js', 'v1');
    
    include '../header.php';
    
    if($_GET['site'] == 'galerie')
        include 'galerie.php';

Greetz

paddya
 
Zuletzt bearbeitet: