Loading...   Upload Image

Layout ManagerTutorials » PHP/MySQL Tutorials » Layout Manager

Verfasst von Alice am 23.08.2009 - wurde schon 36934 mal gelesen

Kategorie: PHP/MySQL
Bewertung:
11x bewertet
Schwierigkeit: mittel
Kommentare: [ 94 ]

Tag - Schlagwort Script Tag - Schlagwort Tutorial Tag - Schlagwort PHP Tag - Schlagwort Layout Tag - Schlagwort Upload Tag - Schlagwort Blaetterfunktion

Layout Manager - Tutorial

Es kam nun schon oeferts der Wunsch nach einen Layout-Upload-Script auf, nun denn, ich nenn das Script jetzt einfach mal Layout Manager, passend zum Affiliate Manager ;)

Was wird benoetigt?


- PHP / MySql Grundkenntnisse
- 1 MySql Datenbank
- Webspace der PHP unterstuetzt

Wie schauts aus?


Administration
- Admin Ansicht
- Layout eintragen
- Layout bearbeiten
- Layout loeschen

Ausgabe
- Ausgabe der Layouts

Der Layout Manager baut auf die selbe Datenbank wie schon das Script Newssystem mit Kommentar-Funktion, wer also das Newssystem im Einsatz hat, der faengt erst bei Step2 an zu lesen ;)

Step 1


Als erstes erstellen wir uns eine neue Tabelle, fuer die Autoren, in der Datenbank(mit PHPMyAdmin)
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(48) NOT NULL,
`email` varchar(255) NOT NULL,
`passwort` varchar(48) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
);


Dann legen wir gleich mal einen User an, die Daten bitte Anpassen!
INSERT INTO `user` (`id`, `name`, `email`, `passwort`) VALUES
(1, 'DeinUsername', 'DeineEmailAdresse', 'DeinPasswort');


Step 2


Wir erzeugen abermals eine Tabelle, diesmal allerdings fuer die Layouts
CREATE TABLE IF NOT EXISTS `layouts` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`autor` varchar(50) NOT NULL,
`title` varchar(255) NOT NULL,
`typ` varchar(255) NOT NULL,
`cat` varchar(255) NOT NULL,
`icon` varchar(255) NOT NULL,
`preview` varchar(255) NOT NULL,
`download` varchar(255) NOT NULL,
`size` varchar(22) NOT NULL,
`views` int(11) NOT NULL,
`downloads` int(11) NOT NULL,
`date` datetime NOT NULL,
`ip` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);


Step 3 - Datenbank Verbindung | config.inc.php


Config.inc.php heisst unsere Datei mit der wir eine Verbindung zur Datenbank herstellen, ohne die geht gar nichts!


Step 4 - header.php


Die Datei header.php wir in alle Datein eingebunden, die fuer die Administration der News zustaendig sind, sie enthaelt zum einen einen Zugriffsschutz, sowie den oberen Teil des immer wieder benoetigen HTML Grundgeruests.Die verwendete CSS Datei kann hier heruntergeladen werden.
"; //=> Weiterleitung
 
 } 
?>




	Grafixx LayoutManager
	
	 
	
	
	

	



	


Step 5 - footer.php


Die Datei footer.php wird ebenfalls, wie zuvor schon die header.php, in alle Datein eingebunden, welche fuer die Administration der News zustaendig sind, die Datei enthaelt den abschliessenden Teil des HTML-Grundgeruestes, sowie die Navigation...


Step 6 - sidebar.php


Die Datei sidebar.php enthaelt zum einen den Loginbereich, eine Moeglichkeit sich wieder auszuloggen, die Navigation...
\n";
 	
$action = strip_tags($_GET['action']);	// Variable definieren

if(isset($_POST['submit_login'])){
	
	$log_user = mysql_real_escape_string($_POST['log_user']); 		// Variable definieren
	$log_pass = mysql_real_escape_string($_POST['log_pass']);	// Variable definieren => MD5 Verschluesselung
	
	$login = mysql_query("SELECT id FROM user WHERE name='$log_user' AND passwort='$log_pass'"); 
	
	if(mysql_num_rows($login) > 0){ // korrekt eingeloggt
	
			$row = mysql_fetch_object($login); // DATEN aus DB
			
			$_SESSION['login'] = $row->id; // Session zuweisen
			$_SESSION['user'] = $log_user; // Session zuweisen
			
			echo "";	// Weiterleitung 

	}
}

//--------------------------------------------------------
// Wenn Eingeloggt
//--------------------------------------------------------

if(isset($_SESSION['login'])){

 echo "

Welcome ".$_SESSION['user'].""; echo "Logout

"; echo "

Layouts verwalten\n "; echo "Layout eintragen

\n "; //-------------------------------------------------------- // Logout //-------------------------------------------------------- if($action == 'logout'){ session_unset(); // Sessionvariable loeschen session_destroy(); // Session zerstoeren echo ""; // Weiterleitung => Login } }else{ ?>
Grafixx Login




Step 7 - admin.php


Die Datei admin.php listet alle bisher hochgeladenen Layouts auf, wenn man mit derm Maus ueber den Namen des Layouts faehrt wird das Vorschaubild eingeblendet, die Datei bieten jeweils zu jedem Layout einen Link zum Editieren/Loeschen des Layouts an ...
Layouts\n";

$abfrage = mysql_query("SELECT id FROM layouts");	// DB Abfragen
$total = mysql_num_rows($abfrage); 					// Anzahl der Zeilen in DB

// ---------------------- Seitennavigationsdaten --------------------------------------------------

$per_page = "8";      	   // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen
$p = "5";                  // Anzahl der Links die in der Seitenavigation ausgegeben werde

// Blaetterfunktion aufrufen = > Ausgeben
list ($start, $ende) = get_navi($_GET['go'], $total, "admin.php?go=", false, $per_page, $p);

// ---------------------- ENDE Seitennavigationsdaten----------------------------------------------

$abfrage = mysql_query("SELECT 
								id, 
								autor,
								title, 
								cat, 
								icon, 
								preview, 
								download, 
								size, 
								views,
								downloads, 
								DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM layouts ORDER BY id DESC LIMIT $start,$ende");

if($total < 1){ // Pruefen ob Layouts vorhanden
	
	echo "

Zur Zeit existieren keine Layouts ...

"; }else{ echo "

Insgesamt sind derzeit ".$total." Layouts vorhanden ...

"; echo "\n

"; // Blaetterfunktion aufrufen = > Ausgeben get_navi($_GET['go'], $total, "admin.php?go=", true, $per_page, $p); } // close Eintrage vorhanden //------------------------------------------------------------------------------ }else{ // Sofern nicht eingeloggt ... if(isset($_POST['submit_login'])){ $log_user = mysql_real_escape_string($_POST['log_user']); // Variable definieren $log_pass = mysql_real_escape_string($_POST['log_pass']); // Variable definieren => MD5 Verschluesselung $login = mysql_query("SELECT id FROM user WHERE name='$log_user' AND passwort='$log_pass'"); if(mysql_num_rows($login) > 0){ // korrekt eingeloggt $row = mysql_fetch_object($login); // DATEN aus DB $_SESSION['login'] = $row->id; // Session zuweisen $_SESSION['user'] = $log_user; // Session zuweisen echo ""; // Weiterleitung } } // close submit // Wenn nicht eingeloggt --------------------------------------------------------- echo "

Zugriff verweigert ...

"; echo "

Du musst eingeloggt sein, um diese Seite aufrufen zu koennen ...

"; } // close eingeloggt include('footer.php'); // Footer einbinden ?>


Step 8 - post_layout.php


Die Datei post_layout.php ist fuer das Eintragen, Loeschen und Bearbeiten eines Layouts zustaendig. Diese Datei verwendet die PhpConcept Library Zip, mit deren Hilfe das entpacken von Zip-Daten kinderleicht ist. Die PhpConcept Library Zip muss selbst heruntergeladen werden, anschliessen dann die entpackte Datei pclzip.lib.php im selben Ordner wir die post_layout.php abgespeichern!
title;
		$cat = $row->cat;
} // if $_GET 'id'
// ------------------------------------------------ / Configuration / ------------------------------------------------//

if (isset($_POST['submit'])) {

$action = clean_it($_GET['action']); 
$id = clean_it($_GET['id']);

	$autor = clean_it($_POST['autor']); 
	$typ = clean_it($_POST['typ']); 
	$cat = clean_it($_POST['cat']); 
	$title = clean_it($_POST['title']); 
	$icon = $_FILES['thumb']['name'];
	$zip =  $_FILES['zip']['name'];
	$datei_size = $_FILES['zip']['size'];
	$user_ip = $_SERVER['REMOTE_ADDR'];
	
// ------------------------------- Neues Layout ----------------------------
if(!isset($_GET['action'])){  

// Pruefen ob alles angegeben wurde
if ($autor == '' || $title == '' || $typ == '' || $icon == '' || $series = '' || $zip == '') { 
    
    echo '

Error ...

Bitte Danke alle Felder ausfuellen ...

'; }else{ // Sofern denn alles da $zip_size = datei_groesse("$datei_size", 2); // Dateigroesse ermitteln // Pruefen ob Dateityp / Dateigröße erlaubt -> Icon $icon_d = strrchr($_FILES['thumb']['name'], "."); // Nun ist in $icon_d folgendes enthalten: .dateiendung if ($_FILES['thumb']['size'] <= $icon_max_size && in_array($icon_d,$icon_max_type)) { // Sofern okay Dateityp/Dateigroesse // Pruefen ob Dateityp / Dateigröße erlaubt -> ZIP $zip_d = strrchr($_FILES['zip']['name'], "."); // Nun ist in $zip_d folgendes enthalten: .dateiendung if ($_FILES['zip']['size'] <= $zip_max_size && in_array($zip_d,$zip_max_type)) { // Sofern okay Dateityp/Dateigroesse $x = 1; while(is_dir($pfad_layi.$x)){ $x++; } // Zahl fuer Ordner definieren mkdir($pfad_layi.$x, 00777) or die($php_errormsg); // Ordner erstellen chmod($pfad_layi.$x, 00777); // CHMOD setzen $datei_pfad = $pfad_layi.$x."/"; if (is_dir($datei_pfad)) { // pruefen ob ordner erstellt wurde echo "

- Ordner ".$x." in Verzeichnis layouts erstellt
"; } // Vorschaubild hochladen //----------------------------------------------------------------------- $datei_pfad_img = $datei_pfad.$x.'-thumb'.$icon_d; // Datei umbenenn in if(move_uploaded_file($_FILES['thumb']['tmp_name'], $datei_pfad_img)) { echo " - Vorschaubild erfolgreich hochgeladen
\n"; }else{ echo " x Vorschaubild konnte nicht hochgeladen werden :("; } // Zip-Datei hochladen //----------------------------------------------------------------------- $datei_pfad_zip = $datei_pfad.$x.'.zip'; // Datei umbenenn in if(move_uploaded_file($_FILES['zip']['tmp_name'], $datei_pfad_zip)) { echo " - Zip-Datei erfolgreich hochgeladen
\n"; }else{ // Wenn ZIP Datei nicht hochgeladen werden konnte echo " x Zip-Datei wurde nicht hochgeladen :( \n"; } // Zip-Datei entpacken //----------------------------------------------------------------------- include('pclzip.lib.php'); // PclZip einbinden $archive = new PclZip("$datei_pfad_zip"); //zip file to extract if ($archive->extract(PCLZIP_OPT_PATH, $datei_pfad.'/') == 0){ die(" x Error : ".$archive->errorInfo(true)); // fehler -> abbrechen }else{ // Wenn kein Fehler beim Entpacken war Echo " - Zip-Datei wurde erfolgreich entpackt
\n"; $icon = $datei_pfad_img; // Iconpfad $download = $datei_pfad_zip; // Downloadpfad $preview = $datei_pfad; // Vorschaupfad }// close entpacken // DB Eintrag $upload = mysql_query("INSERT INTO $tab (autor, title, typ, cat, icon, size, preview, download, ip, date ) VALUES ('$autor','$title','$typ', '$cat', '$icon','$zip_size','$preview','$download','$user_ip', now() )"); if($upload){ // Sofern Upload erfolgreich echo "

Wunderbar ...

Der Eintrag in die Datenbank war erfolgreich ...

"; $okay = 1; } else { // Wenn Upload nicht erfolgreich echo "

Error....

\n

Der Eintrag war nicht erfolgreich :(
\n ".mysql_error()."

\n"; } }else{ // Datei zugross / keine Zip Datei if ($_FILES['zip']['size'] > $zip_max_size){ echo "

Error...

\n

Die Zip-Datei ist zu schwer max. ".$zip_max_size."kb ...

\n"; } if (!in_array($zip_d,$zip_max_type)){ echo "

Error...

\n

Die hochgeladene Datei ist keine Zip-Datei!

\n"; } } // close else Datei zugross / keine Zip Datei }else{ // Datei zugross / Dateitype nicht erlaubt Icon Datei if ($_FILES['thumb']['size'] > $iconp_max_size){ echo "

Error...

\n

Die Zip-Datei ist zu schwer max. ".$zip_max_size."kb ...

\n"; } if (!in_array($icon_d,$icon_max_type)){ echo "

Error...

\n

Die hochgeladene Datei ist keine Zip-Datei!

\n"; } } // close else Datei zugross / keine Icon Datei } // close Check if user submit blank entry } // close !action // ------------------------------- Layout edit ---------------------------- if ($action == "edit") { // Pruefen ob alles angegeben wurde if ($autor == '' || $title == '' || $typ == '' || $series = '' ){ echo '

Error ...

Bitte Danke alle Felder ausfuellen ...

'; }else{ // Wenn alles notwendige angegeben wurde if(!empty($zip) AND !empty($icon)){ // Nur wenn die Dateien ein Update benoetigen $zip_size = datei_groesse("$datei_size", 2); // Dateigroesse ermitteln // ALTE Dateien Loeschen $folder = substr($row->preview, 0, -1); // zu loeschendes Verzeichnis ermitteln if(deleteDirectory($folder) == false){ // Pruefen ob die alten Dateien geloescht wurden, wenn nicht -> Fehler echo '

Error ...

Es ist ein Fehler aufgetreten ...

'; }else{ // wenn die alten Dateien geloescht wurden // Pruefen ob Dateityp / Dateigröße erlaubt -> Icon $icon_d = strrchr($_FILES['thumb']['name'], "."); // Nun ist in $icon_d folgendes enthalten: .dateiendung if ($_FILES['thumb']['size'] <= $icon_max_size && in_array($icon_d,$icon_max_type)) { // Sofern okay Dateityp/Dateigroesse // Pruefen ob Dateityp / Dateigröße erlaubt -> ZIP $zip_d = strrchr($_FILES['zip']['name'], "."); // Nun ist in $zip_d folgendes enthalten: .dateiendung if ($_FILES['zip']['size'] <= $zip_max_size && in_array($zip_d,$zip_max_type)) { // Sofern okay Dateityp/Dateigroesse $x = 1; while(is_dir($pfad_layi.$x)){ $x++; } // Zahl fuer Ordner definieren mkdir($pfad_layi.$x, 00777) or die($php_errormsg); // Ordner erstellen chmod($pfad_layi.$x, 00777); // CHMOD setzen $datei_pfad = $pfad_layi.$x."/"; if (is_dir($datei_pfad)) { // pruefen ob ordner erstellt wurde echo "

- Ordner ".$x." in Verzeichnis layouts erstellt
"; } // Vorschaubild hochladen //----------------------------------------------------------------------- $datei_pfad_img = $datei_pfad.$x.'-thumb'.$icon_d; // Datei umbenenn in if(move_uploaded_file($_FILES['thumb']['tmp_name'], $datei_pfad_img)) { echo " - Vorschaubild erfolgreich hochgeladen
\n"; }else{ echo " x Vorschaubild konnte nicht hochgeladen werden :("; } // Zip-Datei hochladen //----------------------------------------------------------------------- $datei_pfad_zip = $datei_pfad.$x.'.zip'; // Datei umbenenn in if(move_uploaded_file($_FILES['zip']['tmp_name'], $datei_pfad_zip)) { echo " - Zip-Datei erfolgreich hochgeladen
\n"; }else{ // Wenn ZIP Datei nicht hochgeladen werden konnte echo " x Zip-Datei wurde nicht hochgeladen :( \n"; } // Zip-Datei entpacken //----------------------------------------------------------------------- include('pclzip.lib.php'); // PclZip einbinden $archive = new PclZip("$datei_pfad_zip"); //zip file to extract if ($archive->extract(PCLZIP_OPT_PATH, $datei_pfad.'/') == 0){ die(" x Error : ".$archive->errorInfo(true)); // fehler -> abbrechen }else{ // Wenn kein Fehler beim Entpacken war Echo " - Zip-Datei wurde erfolgreich entpackt
\n"; $icon = $datei_pfad_img; // Iconpfad $download = $datei_pfad_zip; // Downloadpfad $preview = $datei_pfad; // Vorschaupfad }// close entpacken }else{ // Datei zugross / keine Zip Datei if ($_FILES['zip']['size'] > $zip_max_size){ echo "

Error...

\n

Die Zip-Datei ist zu schwer max. ".$zip_max_size."kb ...

\n"; } if (!in_array($zip_d,$zip_max_type)){ echo "

Error...

\n

Die hochgeladene Datei ist keine Zip-Datei!

\n"; } } // close else Datei zugross / keine Zip Datei }else{ // Datei zugross / Dateitype nicht erlaubt Icon Datei if ($_FILES['thumb']['size'] > $iconp_max_size){ echo "

Error...

\n

Die Zip-Datei ist zu schwer max. ".$zip_max_size."kb ...

\n"; } if (!in_array($icon_d,$icon_max_type)){ echo "

Error...

\n

Die hochgeladene Datei ist keine Zip-Datei!

\n"; } } // close else Datei zugross / keine Icon Datei } // close alte dateien loeschen } // close datein benoetigen Update // DB Update $update= "UPDATE $tab SET autor = '$autor', typ = '$typ', cat = '$cat', title ='$title', ip = '$user_ip'"; if((!empty($zip)) AND (!empty($icon))){ // Nur wenn die Dateien ein Update benoetigen $update.= ", icon = '$icon', size = '$zip_size', preview = '$preview', download = '$download'"; } $update.= "WHERE id='$id'"; $upload = mysql_query($update); if($upload){ // Sofern Upload erfolgreich echo "

Wunderbar ...

Das Update war erfolgreich ...

"; $okay = 1; } else { // Wenn Upload nicht erfolgreich echo "

Error....

\n

Der Eintrag war nicht erfolgreich :(
\n ".mysql_error()."

\n"; } } // close Check if user submit blank entry } // close action edit }//------------------------------------- close Submit geklickt -------------------------------------- if($okay != 1 AND $action != 'loeschen'){ ?>
Layout eintragen


Vorhanden \n "; echo "preview."\" target=\"_blank\" style=\"float: left; padding-right: 8px;\">icon."\" alt=\"".$row->title."\" /> \n"; echo "

Datum: ".$row->datum." \n"; echo "
Size: ".$row->size." \n"; echo "
Downloads: ".$row->downloads." \n"; echo "
Views: ".$row->views."

\n"; echo "

"; echo "

Optional

"; } ?>

Wirklich ...

\n"; echo "

Bist du sicher dass du das preview."\" class=\"tool\">Layout ".$id."icon."\" alt=\"".$row->title."\" />\n"; echo "loeschen moechtest?

\n"; echo "

  Ja  "; echo "    Nein  

\n
"; }else{ $delete = mysql_query("DELETE from $tab WHERE id='$id'");// Loeschen der Dateien aus der Datenbank $folder = substr($row->preview, 0, -1); // zu loeschendes Verzeichnis ermitteln if((deleteDirectory($folder) == true) AND ($delete)){ // Wenn geloescht wurde echo "

Prima ...

\n

Das Loeschen des Designs war erfolgreich ...

\n"; }else{ // Wenn nicht geloescht wurde echo "

Error ...

\n

Der Loeschvorgang war leider nicht erfolgreich :(

"; } } // close mode } // close if ($action == "delete") include('footer.php'); ?>


Step 9 - functions.php


Die Datei functions.php beheimatet zum einen die Blaetterfunktion(Seitennavigation), welche fuer das Blaetern auf der Ausgabeseite und im Administrationsbereich benoetigt wird, ebenfalls anzutreffen in dieser Datei, ist eine Function, welche DB-Eintraege 'saeubert' und zu guter Letzt nich eine Function, welche die Dateigrossen wiedergibt.
 SQL Injektions
function clean_it($dirty){ 
    
     // Auswirkungen von magic_quotes_gpc zuruecksetzen, wenn ON
    if (get_magic_quotes_gpc()) {
        $clean = mysql_real_escape_string(stripslashes(htmlspecialchars($dirty)));
    }else{
        $clean = mysql_real_escape_string(htmlspecialchars($dirty));
    }

    return $clean;
}

// Funktion um die Dateigroesse zu ermitteln	
function datei_groesse($datei_size, $nachkommastellen = 0) {
    $d_size = $datei_size;
    if($d_size >= 1073741824) {
        return round($d_size/(1073741824), $nachkommastellen)." GB";
    }
    
    if($d_size >= 1048576) {
        return round($d_size/(1048576), $nachkommastellen)." MB";
    }
    
    if($d_size >= 1024) {
        return round($d_size/(1024), $nachkommastellen)." KB";
    }
    
    return $d_size." Byte";
}

// Blaetterfunktion => Seitennavigation
function get_navi($go, $total, $pfad, $ausgabe = false, $ende = 10, $p = 3){

	//-----------------------------------------------------------------------------------------------
	// $pfad 					=> Dateipfad
	// $total 					=> Anzahl der in DB
	// $ende 					=> Anzahl der Datensaetze die Pro Seite angezeigt werden sollen
	// $p 						=> Anzahl der Links die in der Seitenavigation ausgegeben werden
	// $ausgabe = false			=> Seitennavigation NICHT ausgeben oberhalb der DB Abfrage
	//-----------------------------------------------------------------------------------------------

	$seiten = ceil($total / $ende);     // Berechnet die Seitenanzahl insgesamt
	
	if(!isset($go)){ // korrigieren der aktuellen Seite

	    $go = 1;             // Sofern $go nicht uebergeben wurde

	}elseif($go <= 0 || $go > $seiten){
	
	    $go = 1;         // Variable definieren
	
	}else{ // Wenn Obiges nicht zutraf
	
	    $go = clean_it($go); // Variable definieren

	}

	$links = array(); // Linkkette bilden

	// Seite die vor der aktuellen Seite kommt definieren
	if(($go - $p) < 1){ $davor = $go - 1;  }else { $davor = $p; }            

	// Seite die nach der aktuellen Seite kommt definieren
	if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; }   
       
	$off = ($go - $davor); // Variable definieren   
	                
	if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen         
	    $first = 1;
	       $links[] = "« Erste ...\n";      
	}      
	
	if($go != 1){ // Link definieren => eine Seite zurueck blaettern          
	    $prev = $go-1;
	    $links[] = "«\n";     
	}   
	       
	for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen
	
	  if ($i != $go){  // Link definieren            
	  
	        $links[] = "$i\n";
	        
	  }elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich             
	        
	        $links[] = "$i\n";  
	        
	  }elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich             
	  
	        $links[] = "$i\n";
	        
	  } // close if $i      
	}// close for                
	
	if($go != $seiten){ // Link definieren => eine Seite weiter blaettern       
	    $next = $go+1;
	    $links[] = "»\n";
	}      
	    
	if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen   
	    $last = $seiten; 
	    $links[] = "... Letzte »\n";
	}      
	
	$start = ($go-1) * $ende;             // Berechne den Startwert fuer die DB

	$link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String

	// -------------------------------------- Seitennavigation ausgeben ----------------------------
	
	if($ausgabe == true){
		 echo "
\n"; echo "Seite $go von $seiten\n"; echo $link_string; // Ausgabe der Seitennavigation echo "
\n"; } //close ausgabe // -------------------------------------- Seitennavigation ende -------------------------------- return array($start, $ende); } // close function // Funktion zum Loeschen von Ordner mit samt Inhalt function deleteDirectory($dir){ if (!file_exists($dir)) return false; if (!is_dir($dir) || is_link($dir)) return unlink($dir); foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') continue; if (!deleteDirectory($dir . "/" . $item)) { chmod($dir . "/" . $item, 0777); if (!deleteDirectory($dir . "/" . $item)) return false; }; } return rmdir($dir); } ?>


Step 10 - layouts.php


Die Datei layouts.php ist fuer die Ausgabe der Layouts zustaendig, sie bietet die Moeglichkeit die Layouts nach Autoren oder aber nach Kategorien sortieren zu lassen. In die layouts.php wird die config.inc.php, sowie als auch die functions.php eingebunden, sollten sich die Dateien nicht im selben Ordner befinden, muessen die Pfade angepasst werden!
preview;
    }
    
    if($do == 'download'){ // Layout downloaden
    	$was = "downloads";
    	$url = $row->download;
    }
    
    // eins hochzaehlen und leitet den Besucher weiter
    $update = mysql_query("UPDATE layouts SET $was = $was+'1' WHERE id='$id'"); 
    
        if($update){
            header("Location: $url");
        }else{
  			 echo "

Error....

Es ist ein Fehler aufgetreten!

"; } } // close ID uebergeben //-------------------------------------------------------------------------------------- ?> Grafixx LayoutManager
Layouts\n"; $pfad = "layouts.php?go="; // Pfad ermitteln if(isset($_GET['do'])){ // nur bestimmter typ $do = clean_it($_GET['do']); // Variable definieren $where = "WHERE typ = '".clean_it($_GET['do'])."'"; $pfad = "layouts.php?do=".$do."$amp;go="; // Pfad ermitteln }else{ // Wenn nichts uebergeben $pfad = "layouts.php?go="; // Pfad ermitteln } if(isset($_GET['autor'])){ // nur bestimmter Autor $auto = clean_it($_GET['autor']); // Variable definieren $where = "WHERE autor = '".$auto."'"; $pfad = $pfad."&autor=".$auto; // Pfad ermitteln } if(isset($_GET['cat'])){ // nur bestimmte Serie $cats = clean_it($_GET['cat']); // Variable definieren $where = "WHERE cat = '".$cats."'"; $pfad = $pfad."&cat=".$cats; // Pfad ermitteln } $abfrage = mysql_query("SELECT id FROM layouts ".$where." "); // DB Abfragen $total = mysql_num_rows($abfrage); // Anzahl der Zeilen in DB mysql_error(); // ---------------------- Seitennavigationsdaten -------------------------------------------------- $per_page = 6; // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen $p = 5; // Anzahl der Links die in der Seitenavigation ausgegeben werde // Blaetterfunktion aufrufen = > Ausgeben list ($start, $ende) = get_navi($_GET['go'], $total, $pfad, false, $per_page, $p); // ---------------------- ENDE Seitennavigationsdaten---------------------------------------------- $abfrage = mysql_query("SELECT id, autor, title, typ, cat, icon, preview, download, size, views, downloads, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM layouts ".$where." ORDER BY id DESC LIMIT $start,$ende"); if($total < 1){ // Pruefen ob Layouts vorhanden echo "

Zur Zeit existieren keine Layouts in dieser Kategorie ...

"; }else{ echo "

Insgesamt sind derzeit ".$total." Layouts vorhanden ...

"; // Layouts ausgeben ausgeben while($row = mysql_fetch_object($abfrage)){ ?>
title; ?>
<?= $row-title; ?> Serie: cat; ?>
Designer: autor; ?>
Datum: datum; ?>
Size: size; ?>
Typ: typ; ?>

Preview (views; ?>)     Download (downloads; ?>)


"; // Blaetterfunktion aufrufen = > Ausgeben get_navi($_GET['go'], $total, $pfad, true, $per_page, $p); } // close Eintrage vorhanden ?>


Step 11 - Verzeichnis layouts


Als finalen Schritt legen wir nun noch einen Ordner mit der Bezeichnung layouts an, dieser muss CHMOD 777 verpasst bekommen, in den dann die Layouts hochgeladen werden koennen...

Wir haben also nun folgende Dateien:
- config.inc.php || Baut die Verbindung zur DB auf
- header.php || enthaelt Zugriffsschutz und einen Teil des HTML-Grundgeruestes
- footer.php || enthaelt den anschliessenden Teil des HTML-Grundgeruestes
- sidebar.php || enthaelt den Login/Logout und die Navigation
- admin.php || listet alle bisher hochgeladenen Layouts auf
- post_layout.php || Loeschen, Editieren und Eintragen von Layouts

- functions.php || Blaetterfunktion, Dateigroesse bestimmen, DB-Eintraege saeubern

- layouts.php || Ausgabe der Layouts

All diese Dateien sollte sich in ein und dem selben Ordner befinden, der Ordner layouts ebenfalls,ggf. muessen sonst die einzelnen Pfadangaben angepasst werden!

Ich denke dass die einzelnen Datein eigentlich recht gut auskommentiert sein sollten, deshalb war ich mal wieder so frei, mir eine genauer Beschreibung der einzelnen Dateien zu ersparen :D

Wichtig!


Damit das Script funktioniert, muss sich in der Zip-Datei eine index.html, eine index.htm oder aber eine index.php befinden!
Desweiteren darf das Layout nicht als Ordner gezipt worden sein.


Sollten es bei der Vorschau der Layouts nicht funktionieren, dann ist keine Index-Datei im Ordner des Layouts vorhanden, oder aber der Webspace ist so konfiguriert, dass beim Aufrufen eines Ordners der Ordnerinhalt aufgelistet wird, anstatt automatisch die Index-Datei anzuzeigen, sollte dies der Fall sein, so kann man sich mit einer .htaccess Datei Abhilfe schaffen.

Die .htaccess Datei muss in den Ordner layouts gesteckt werden und sollte folgende Zeile enthalten:
DirectoryIndex index.html index.php


Viel Spass damit,
sollten Fragen zum Layout Manager auftauchen oder gar Probleme damit bestehen, bitte die Kommentarfunktion hier nutzen ;)

Tutorial Dateien herunterladen

Kommentar schreibenHinterlasse einen Kommentar

Du musst angemeldet sein, um einen Kommentar zu hinterlassen...

Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...


Neuste Tutorials

Neuste Forenthemen

Neuste Kommentare

Affiliates:   The Seduction  •   Pat DG  •   Colorful Gfx  •   Blue-Graphics  •   Design Grafixx  •   Gallery Yuri  •   Chibi Graphics  • Show all ...
designenlassen.de - Der Design-Marktplatz für Webdesign, Logo-Design, Flyerdesign u.v.m.        ALL-INKL.COM - Webhosting Server Hosting Domain Provider