• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Best Praxis: Admin-Funktionen?

kullerkeks

New member
Hallo @all,

da ich noch nicht allzu lange mit php hantiere, brauche ich mal die Meinungen von "Experten" ;)
Ich habe einen Admin-Bereich auf einer Homepage erstellt und möchte nun Funktionalitäten zum editieren von einzelnen Seiten erstellen. Das beinhaltet das Einstellen neuer News, das Aktualisieren von ganzen Text-Seiten und das Hochladen von Bildern (mal gaaanz illusorisch gedacht...). Ich stelle mir das so vor, dass das über Formulare vom Nutzer (=Admin) eingelesen wird.
Nun habe ich schon diverse Lösungen gefunden, die alle verschiedenste Ansätze haben:
  • über XML-Dateien, die dann entsprechend eingebunden werden
  • über das Speichern/Holen aus einer Datenbank (obwohl: ist es nicht ziemlich unsinnig, einen super-langen Text in der Datenbank zu speichern, um ihn dann auf der entsprechenden Seite wieder aus derselben abzurufen?)
  • ??

Meine Frage nun: gibt es vielleicht einen direkten Weg, wie ich Daten aus dem Formular (im Admin-Bereich) lesen kann und sie dann direkt in die entsprechende Seite (im öffentlichen Bereich) schreiben kann? Ohne Zwischenspeichern oder XML? Bzw. welche Variante ist zu bevorzugen?

Ich hoffe, jemand kann mir mit einem guten Rat zur Seite stehen.
Vielen Dank & Grüße,
Sara
 
Du musst die Daten schon irgendwo auf dem Server speichern, damit sie beim Aufrufen den Seite angezeigt werden können.
 
Du kannst natürlich rein statische HTML Seiten ausliefern. Dein Admin Bereich müsste dann diese HTML Seiten bei Änderungen neu erstellen und auf dem Server speichern. Diesen Ansatz halte ich jedoch für unpraktisch. Zum einem müßten deine PHP-Skripte dann das gesamte HTML raus schreiben, was Änderungen am Design/Struktur schwieriger machen. Zum Anderen müsstest du bei Änderungen die den Inhalt einer Seite nicht vollständig überschreiben sollen, den bisherigen Inhalt aus dem HTML parsen.

Den Inhalt in XML speichern ist ein besserer Lösungsansatz. Allerdings musst du dann auch immer die gesamte XML-Datei parsen. Wenn du Beispielsweise ein News-Seite hast, die alle News auf mehreren Seiten verteilt anzeigen soll, müßtest du jedesmal die gesamte XML-Datei mit den News auslesen, auch wenn du dann nur ein Bruchteil davon anzeigst.

Sinnvollster und auch gängigster Ansatz ist die Verwendung einer Datenbank. Auch bei "super langen Texten" sollte dies kein Perfomanceproblem darstellen.
 
vielen Dank erstmal für eure Antworten! Ein CMS hat für meinen Verwendungszweck nicht sehr viel Sinn, da es sich um eine kleinere Website handelt, wo ich für nur einen Admin einige Funktionen bereitstellen möchte. Da würde man also mit Kanonen auf Spatzen schießen, quasi ;)

Nochmal zu der XML vs Datenbank Sache: hat denn XML irgendwelche wesentlichen Nachteile gegenüber Datenbanken? Irgendwie gefällt mir der Gedanke nicht, dass ich in meiner Datenbank ganze Texte hinterlege... Ich habs jetzt schon für die News-Funktion mit einer XML-Datei gemacht und das funktioniert ziemlich gut. Natürlich müsste ich für den Foto-Upload dann doch auf die Datenbank zurückgreifen...

lg Sara
 
vielen Dank erstmal für eure Antworten! Ein CMS hat für meinen Verwendungszweck nicht sehr viel Sinn, da es sich um eine kleinere Website handelt, wo ich für nur einen Admin einige Funktionen bereitstellen möchte. Da würde man also mit Kanonen auf Spatzen schießen, quasi ;)
Es gibt auch kleine CMS - Aber das was du vor hast sind keine Spatzen. Das ist das was viele CMS als Grundausstattung haben, aber nicht mal alle bieten z.b. einen Bildupload.
 
Nochmal zu der XML vs Datenbank Sache: hat denn XML irgendwelche wesentlichen Nachteile gegenüber Datenbanken? Irgendwie gefällt mir der Gedanke nicht, dass ich in meiner Datenbank ganze Texte hinterlege... Ich habs jetzt schon für die News-Funktion mit einer XML-Datei gemacht und das funktioniert ziemlich gut. Natürlich müsste ich für den Foto-Upload dann doch auf die Datenbank zurückgreifen...
Eine Datenbank hat den großen Vorteil, dass man sie per SQL durchsuchen kann.
XML-Dateien haben den Nachteil, dass sie für das händische Erstellen und dem späteren darin Rumfummeln viel zu unhandlich sind.
Warum Du dann für Fotos unbedingt eine Datenbank brauchst, ist mir allerdings schleierhaft.
 
Was sind denn überhaupt große Texte für dich? Reden wir hier von nen paar tausend Zeichen oder ganzen Büchern?
Du scheinst die falschen Vorstellungen von dem was Datenbanken können und was nicht zu haben.
 
mir ist schon bewusst, dass ich jede Menge (und auch sehr lange Texte) in Datenbanken speichern kann - ich habe auch durchaus schon mit solchen gearbeitet ^^
Es ist nur so: ich habe bspw. nur eine einzige News zu verwalten (keine ganze Reihe von News) und auch nur wenige Texte, die der Admin verändern kann. Alte Texte/News werden auch nicht gespeichert sondern einfach mit den neuen überschrieben - ich muss also gar nicht viel (mengenmäßig gesehen) speichern. Daher dachte ich, es ist doch besser, für solche Sachen nicht extra jedes Mal eine Datenbank-Verbindung aufbauen zu müssen, oder?

Aber ich sehe schon, ihr seid irgendwie nicht so sehr für meinen XML-Ansatz zu begeistern ;-)
 
In dem Fall würde ich mit PHP (o.ä) statische HTML-Seiten generieren. Dann brauchst du weder ne Datenbankverbindung auzubauen noch müsehlig XML zu parsen (was meiner Einschätzung nach aufwendiger ist als der Verbindungsaufbau und das Auslesen der Daten, vorallem wenn die Datenbank auf dem selben Rechner läuft).
 
Wie wäre es denn mit einer Mischung aus beidem? Du speicherst die Texte in einer Datenbank. Dies macht das Editieren einfacher.
Wenn du die Texte fertig hast und diese abgespeichert sind, drückst du auf einen Freigabebutton.
Dieser Button bewirkt, dass die entsprechende HTML-Seite neu erstellt wird, in dem die geänderten Texte eingebaut werden. Beim Abruf dieser Seite aus dem Netz wird damit die Datenbank nicht bemüht und du hast eine statische Seite. Gleichzeitig hast du aber den Komfort, dass du im Adminbereich die Texte aus der Datenbank holen und so sehr einfach bearbeiten kannst ohne vorher erst die statische Seite in einen Editor zu laden und den entsprechenden Text zu extrahieren.
Damit hast du quasi ein Mini-CMS was auf deine Bedürfnisse zugeschnitten ist und sich später dann halt ausbauen lässt.
 
Hmm...die Idee gefällt mir eigentlich am Besten. Damit würde ich mir die Datenbank-Abfrage beim Aufrufen der eigentlichen Inhaltsseite sparen.
Wie das Ganze theoretisch funktioniert, ist mir auch vollkommen klar. Nur wie bastele ich mir die statische HTML-Seite?

Ich habe bspw. im Admin-Bereich ein Formularfeld, wo der admin seinen Text, durch den er den alten Text auf der eigentlichen Inhaltsseite ersetzen möchte, entsprechend eingeben kann. Mit Klick auf den Submit-Button wird dieser Text nun zunächst in der DB gespeichert (da fällt mir ein: wie ist das mit Formatierungstags? Also bspw. Zeilenumbrüchen, die der admin im Formularfeld eingibt? Sollten die gleich als HTML-tags mit im Text bzw. der DB gespeichert werden?).
Gleichzeitig wird nun die statische HTML-Seite generiert. Da ich aber natürlich einen allgemeinen "Layout-Rahmen" für alle Seiten habe, müsste ich doch jedes Mal die komplette HTML-Datei neu schreiben und die alte dann löschen/überschreiben? Oder gibt es eine Möglichkeit, wie ich in die bestehende Datei an eine vorgegebene Stelle springe (also bspw. in ein vorgegebenes DIV wo der content dann drin steht), um dort den dynamischen content zu übertragen?

War das jetzt verständlich? ^^
 
ich würde die komplette Seite einfach neu schreiben. Kommt ja nun nicht so häufig vor, dass sich der Inhalt ändert. Ich würde den Text so in der Datenbank speichern, wie er eingegeben wurde. Dann musst du für ein editieren des Textes nicht das HTML zurückumwandeln.
 
Danke für die guten Ratschläge - ich denke, ich werde das jetzt mit datenbank und statischen seiten umsetzen!

vielen dank!
 
Zurück
Oben