| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

28-05-2010, 10:18
|
|
sfischer
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 30
|
|
Seiteninhalt ändern - Was ist "state of the art"?
Guten Morgen erstmal,
mein erster Beitrag hier im Forum und ich hoffe, ich bin im richtigen Bereich gelandet. Ich habe folgendes Problem: Ich möchte ein kleines bis mittelgroßes Datenbankprojekt erstellen. Wie bei jeder anderen HTML/PHP-basierten Oberfläche soll es natürlich verschiedene Unterseiten geben. Hierbei soll die Navigation natürlich immer zu sehen sein und es soll sich nur der Inhaltsbereich ändern.
Wie bau ich jetzt am besten meine Navigation, meinen Inhalt und andere Teile der Seite zusammen?
Die einfachste Lösung wären natürlich Frames, aber die sind ja im allgemeinen nicht mehr akzeptiert und alle, die halbwegs etwas von Webdesign verstehen, meiden diese wie der Teufel das Weihwasser.
Dann gäbe es noch die Möglichkeit, eine einzige index.php zu haben, die als "Gerüst" dient, und den Inhalt über eine GET-Variable in den Inhaltsbereich zu laden und vielleicht mittels einer Switch-Anweisung die jeweiligen Fälle zu unterscheiden. Aber auch das stößt irgendwann an seine Grenzen und wird unübersichtlich oder lieg ich da falsch?
Die Variante, jede Seite für sich zu erstellen, wo dann jedesmal der Code für die Navigation neu drin steht missfällt mir irgendwie, wenn ich daran denke, irgendwann mal was an der Seite ändern zu müssen.
Was ist hier der aktuelle Stand der Technik?
Eventuell gibt's dafür auch irgendwo Tutorials? Ich hab bisher noch nix gefunden.
Vielen Dank schonmal im Voraus!
Grüße aus dem Thüringer Wald
Geändert von sfischer (28-05-2010 um 10:26 Uhr)
|

28-05-2010, 10:28
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo und willkommen im Forum,
wie wäre es mit sowas in der Art? Home page
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

28-05-2010, 10:44
|
|
sfischer
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 30
|
|
Hey, danke für die schnelle Antwort!
Das heißt also, ich erstelle für jede Inhaltsseite eine eigene Datei und setze dort, wo die Navigation stehen soll dein Script ein? Und ich bestimme meine Struktur im Prinzip nur durch das Array am Anfang?
Wenn ich das richtig verstanden hab, ist das glaube ich genau das, was ich gesucht habe...
Vielen vielen Dank!
|

28-05-2010, 10:54
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Aufgerufen wird in diesem Falle immer das eine Script. Darin kannst du dann aber im body-Element den eigentlichen Seiteninhalt aus einem anderen Script einbinden. Die URLs lassen sich dann ggf. mit mod_rewrite wieder verschönern.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

28-05-2010, 11:02
|
|
sfischer
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 30
|
|
Wie meinst du das mit "verschönern"? Ich glaub das is alles noch zu viel für mich
Ich bin dafür, dass Peter mal ein Tutorial schreibt, dann versteh ich das sogar :P
Auf die Gefahr hin unverschämt zu werden: Wie wäre denn das Script für den Aufruf des Seiteninhalts?
Grüße
|

28-05-2010, 11:13
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von sfischer
Wie wäre denn das Script für den Aufruf des Seiteninhalts?
|
Z. B.:
PHP-Code:
...
<body>
<h1><?php echo(getTitle($sitemap)); ?></h1>
<ul><?php echo(createNavigation($sitemap)); ?></ul>
<?php
if (/* prüfen, ob der Pfad legal und nicht manipuliert ist */) {
include(dirname(__FILE__) . "/pages" . $_GET["path"] . ".inc.php");
}
?>
</body>
...
Zitat:
Zitat von sfischer
Wie meinst du das mit "verschönern"?
|
Z. B.
http://example.com/projects/aqua/
statt
http://example.com/index.php?path=/projects/aqua/
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (28-05-2010 um 11:17 Uhr)
|

28-05-2010, 11:17
|
|
sfischer
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 30
|
|
Klingt logisch. Ich versuch das mal einzubauen und meld mich dann wieder
Das mit dem Verschönern der Links lass ich erstmal, da das Projekt eh von keiner Suchmaschine erfasst wird und nur in nem Intranet läuft.
Bis denne
|

30-05-2010, 03:18
|
|
tr-oo-per
Registrierter Benutzer
|
|
Registriert seit: May 2010
Ort: at work
Beiträge: 32
|
|
Hallo sfischer,
Dein Vorhaben scheint etwas zu groß angelegt zu sein, um es auf diese Weise anzugehen. Klingt so als würdest Du alles von Grund auf selbst implementieren wollen.
Sieh Dir am besten mal die PHP-Frameworks "Symfony 1.4" oder "Zend 1.10" an.
Du solltest Deine Anwendung (immerhin eine mittelgroße) in logisch zusammengehörige Module (inkl. zugehöriger Aktionen) aufspalten. Für jedes Modul und ggf. Aktion kannst definierst Du Dein Layout und generierst sonstige dynamische HTML-Inhalte. Beim Klicken auf bestimmte Menüpunkte wird der Benutzer dann an die entsprechenden Module weitergeleitet, wo die jeweiligen Aktionen auszugeführt werden. Z.B.: Registrierungsmodul (Aktionen: registrieren, ent-registrieren), Authentifizierungsmodul (Aktionen: login, logout), u.s.w.
Die o.g. Frameworks unterstützen diese Strukturierung (Modul/ Aktion) und bringen sämtliche Funktionalitäten, die man dafür benötigt mit (z.B. Controller, Router, View, Filter, DB-Adapter, ...). Auch wenn der Einstieg in PHP-Frameworks Anfangs etwas schleppend verläuft, lohnt es sich bei größeren Projekten umso mehr.
Zu Deiner Ausgangsfrage:
Du benötigst ein Layout-Template für Deine gesamte Anwendung, in dem Header, Footer und ggf. Menü eingebunden werden. Der eigentliche Inhalt ist in Form eines Platzhalters im Layout-Skript enthalten.
Code:
+------------------------------------+
| Header |
+------------------------------------+
+------+ +---------------------------+
| Menü | | Content |
| | | (Inhalt variabel) |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
+------+ +---------------------------+
+------------------------------------+
| Footer |
+------------------------------------+
Formatiert wird heutzutage mit DIV- und SPAN-Elementen, die absolut oder relativ zueinander positioniert werden (keine TABLE-Elemente!). Beispiel:
<div style="width:100px; height:100px; background-color:red;">Test</div>
erzeugt einen roten 100x100 pixel Bereich mit dem Inhalt "Test". Du kannst mit DIV-Elementen Layout-technisch beinahe alles bewerkstelligen, sofern Du mit CSS vertraut bist.
Viel Spass beim Tüfteln!
Geändert von tr-oo-per (30-05-2010 um 03:24 Uhr)
|

30-05-2010, 10:00
|
|
sfischer
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 30
|
|
Danke für deine Antwort tr-oo-per!
Ich schau mir diese PHP-Frameworks mal an. Stellt sich bloß die Frage, in wie weit man diese auch kommerziell kostenlos nutzen darf. Symfony scheint nur für nicht kommerziellen Gebrauch zu sein bei Zend hab ich noch nichts darüber gefunden.
Mit div- und span-Tags arbeite ich bereits.
Grüße
Geändert von sfischer (30-05-2010 um 10:04 Uhr)
|

30-05-2010, 11:09
|
|
sfischer
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 30
|
|
Also vielleicht bin ich zu blöd dafür aber ich komm mit der Installation von diesem Zend Frameworks überhaupt nicht zurecht. Und wenn ich mich mit der Installation schon mehrere Stunden beschäftigen muss, dann kann ich den ganzen Kram für mein Projekt auch händisch programmieren.
So long
|

30-05-2010, 14:18
|
|
tr-oo-per
Registrierter Benutzer
|
|
Registriert seit: May 2010
Ort: at work
Beiträge: 32
|
|
Hi sfischer,
beide PHP-Frameworks dürfen für kommerzielle Zwecke benutzt werden!
Ich denke, dass Du aufgrund des Mangels an Zeit lieber Symfony benutzen solltest. Da gibt es ein Sandbox-Paket, dass Du einfach in Deinen Web-Ordner kopierst und das dann prinzipiell schon läuft.
The symfony framework Installation | symfony | Web PHP Framework
Wenn es Probleme mit der Bilder-Anzeige, liegt es an der Einstellung in Deiner httpd.conf -- Apache Host-Konfiguration. Sollte der folgende Link nicht helfen, schreib einfach hier noch mal etwas.
Getting Started with symfony | Web Server Configuration | symfony | Web PHP Framework
Nachdem Symfony läuft, arbeitest Du Dich durch das Jobeet-Tutorial (nicht auf Deutsch verfügbar) und solltest ziemlich schnell begreifen wie der Hase läuft.
Practical symfony | Day 1: Starting up the Project | symfony | Web PHP Framework
Falls Du Probleme mit Englisch hast, kannst Du auf das Askeet-Tutorial ausweichen (für Symfony-Version 1.0), wobei einige Punkte im Zusammenhang mit Symfony 1.4 nicht funktionieren werden. Aber das Gros sollte klappen.
The Askeet Tutorial | Symfony Adventskalender Tag 1: Ein Projekt beginnen | symfony | Web PHP Framework
Gruß,
tr-oo-per
|

30-05-2010, 16:00
|
|
sfischer
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 30
|
|
Zitat:
Zitat von AmicaNoctis
wie wäre es mit sowas in der Art? Home page
Gruß,
Amica
|
Ich hätte zu diesem Script nochmal ne Frage:
Wozu ist diese Bedingung, bzw was bewirkt sie?
PHP-Code:
$subPages = $subPages ? "<ul>" . $subPages . "</ul>" : "";
Wenn ich das richtig verstanden hab, ist das ja das gleiche wie
PHP-Code:
if ($subPages = $subPages) $subPages = "<ul>" . $subPages . "</ul>"; else $subPages = "";
Ist die Bedingung für das if nicht immer TRUE? $subPages = $subPages
|

30-05-2010, 16:06
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von sfischer
Wozu ist diese Bedingung, bzw was bewirkt sie?
|
Das bewirkt, dass wenn $subpages leer ist, keine leere Liste erzeugt wird (<ul></ul>), sondern gar nichts. Die if-Entsprechung dafür sähe übrigens so aus:
PHP-Code:
if ($subPages) { $subPages = "<ul>" . $subPages . "</ul>"; }
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

30-05-2010, 16:17
|
|
sfischer
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 30
|
|
Erstmal danke für die schnelle Antwort. Ich würde das ganze gern noch so verändern, dass die Subpages nur angezeigt werden, wenn man sich im entsprechenden Teil des Menüs befindet. Ich versuchs mal so darzustellen:
Meine Menüstruktur sieht so aus:
Code:
Startseite
Artikel verwalten
Artikel anlegen
Artikel suchen
Artikelliste anzeigen
Projekte verwalten
Projekte anlegen
Projekte suchen
offene Projekte anzeigen
.
.
.
Was ich jetzt gern möchte ist, dass wenn man auf der Startseite ist, nur die Menüpunkte Artikel verwalten und Projekte verwalten zu sehen sind. Also so:
Code:
Startseite
Artikel verwalten
Projekte verwalten
Klickt man dann auf Artikel verwalten, sieht es so aus:
Code:
Startseite
Artikel verwalten
Artikel anlegen
Artikel suchen
Artikelliste anzeigen
Projekte verwalten
Klickt man auf Projekte verwalten, dann so:
Code:
Startseite
Artikel verwalten
Projekte verwalten
Projekte anlegen
Projekte suchen
offene Projekte anzeigen
Ich hab schon ein paar Anläufe gemacht, aber es kam nie etwas gescheites dabei raus. Eigentlich müsste man ja nur sagen: "Wenn Kindpunkt ein Unterpunkt von Elternpunkt ist, dann zeig mir den Kindpunkt an". Aber irgendwie krieg ichs nicht gebacken...
|

30-05-2010, 17:04
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Dann erweiterst du einfach die Funktion createNavigation um eine Bedingung und gehst nur dann in die foreach-Schleife, wenn die erfüllt ist.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
LinkBacks (?)
LinkBack to this Thread: http://www.php-resource.de/forum/php-developer-forum/99602-seiteninhalt-aendern-was-ist-state-of-the-art.html
|
| Erstellt von |
For |
Type |
Datum |
| Css Frames Dynamische Menues |
This thread |
Refback |
10-11-2011 17:23 |
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|