Minimalistisches CMS für Textänderungen gesucht

  • geschlossen
  • PHP
  • Minimalistisches CMS für Textänderungen gesucht

    Hallo!

    Ich habe ne fertige Homepage, die aus 5 HTML-Dateien und einer CSS besteht. Jetzt möchte ich für den Inhalt (nur Text) der HTMLs ein CMS installieren. Ich habe also kein Interesse daran, die Navigation oder sonst was dynamisch zu gestalten. Nur einloggen muss ich mich.

    Kennt da jemand ein fertiges Produkt? Oder kann mir Tipps geben, wie ich da ran gehen soll? Ich habe zum Beispiel dieses Tutorial gefunden: Eigenes CMS erstellen mit PHP aber das ist von 2009 und es wirkt doch arg improvisiert. Bin da bis Schritt 9 gekommen, bis ich auf Probleme stieß.

    Hab schon alles mögliche gegooglet, aber nichts brauchbares gefunden. Kennt da jemand was?

    Gruß
    FeliX_22
  • Hi Felix_22,
    ich glaube ein CMS ist, wie du schon richtig anmerktest, für dein Usecase viel zu überladen.

    Mein Vorschlag:
    Schreibe dir ein kleines Script, welches txt-Dateien editieren kann. (Hierbei kann ich auch helfen)
    Somit kannst du in den HTML-Dateien, die du zu PHP-Dateien transformieren müsstest, einfach folgenden Befehl einfügen, um die txt-Datei einzulesen:

    PHP-Quellcode

    1. <?php echo (($c = @file_get_contents('./content/seitenname.txt')) === false) ? 'error reading content' : $c;?>


    Gruß
    BrokenSword
  • Hi!

    Ich hab letztes Wochenende keine Zeit gefunden, ich probiers nächstes Wochenende nochmal, mich da ran zu setzen.

    Du hast mich mit deiner Antwort darin bestätigt, dass ich kein Framework oder sonstiges überladenes Zeug brauche, sondern alles einzeln zusammenprogrammiere. Dann fasse ich hier mal zusammen, was ich alles machen will, soweit ich es im Moment verstehe, ohne praktisch angefangen zu haben:

    • Eine MySQL-Datenbank mit Benutzername und Passwort inkl. Hash und Salt mit password_hash() anlegen
    • Ich habe 5 HTML-Dateien -> jetzt 5 PHP-Dateien
    • auf der Homepage einen Login-Button platzieren
    • Benutzer loggt sich ein (brauche ich ein Session-Cookie? Hab gerade was zur Session gefunden)
    • Ob der Benutzer sich einloggen darf, checke ich mit einer SELECT-Abfrage nach Namen und Passwort
    • Falsch: Benutzer sieht plötzlich neue Buttons zum Editieren auf jeder .php-Seite
    • Falsch: Bei Klick auf Editieren eines Textes, wird ein Textfeld sichtbar
    • Benutzer sieht sämtliche veränderbaren Inhalte nur noch als Textfelder mit einem Speichern-Button
    • Jede PHP-Datei besteht aus einem Grundgerüst und an einer bestimmten Stelle wird der Inhalt der entsprechenden Textdatei eingelesen und entweder normal angezeigt oder im Textfeld angezeigt. Allerdings hat jede Seite mehrere gleichlautende DIVs, also z.B. <div class="left">. Deshalb werde ich pro PHP-Seite mehrere TXT-Dateien habe, also z.B. indexDiv1Left.txt
    • Benutzer loggt sich wieder aus


    Die eine große Baustelle mit dem Einlesen und Ändern von Textdateien haben wir beide schon mal geklärt, falls du dich noch erinnerst ;)

    Die andere große Baustelle ist das mit dem Einloggen und der veränderten Ansicht währenddessen.

    Das meiste davon sollte ich selbständig oder mit Hilfe der bereits verlinkten Seite hinkriegen. Wenn ich dann Probleme habe, poste ich hier nochmal. Und am Schluss poste ich gerne meine Lösung :)

    Danke dir fürs Helfen, immer wieder! :)

    Bis hoffentlich nächstes Wochenende! :D

    Gruß

    FeliX_22
  • Hi Felix,
    wozu willst du eine MySQL-Anbindung? Wenn du mit TXT-Dateien fahren willst, warum login via DB. Oder willst du verschiedene User und diese leicht verwalten können? Für einen alleine reicht ein Hash, der in der PHP-Datei hinterlegt ist.
    Beispiel:

    Quellcode

    1. $USER_PASSWORD_HASH = '90866DEBD32998B8B45C98A51899772FBB0CF9AE6E1A04F8DA90907CCD3CCDB0A11322263347FEB63156D3E31B5733A705364046FDEA06631CD9D21141211732'; //hash of "{user}XX{password}" (without quotation) http://www.convertstring.com/Hash/SHA512
    2. if (hash('sha512', $user . 'XX' . $password) == $USER_PASSWORD_HASH) {
    3. ...
    4. }

    Ein Login-Button würde ich auf der Homepage direkt nicht platzieren, da man leicht in die Versuchung kommt, sich mal auszuprobieren (ich natürlich nicht :D) Ich rate dir eher ein Seite, die nur dir bekannt ist. Security through obscurity heißt die Divise: niemand kommt auf die Idee domain.de/fsb.php einzugeben, um in den Admin bereich zu gelangen.
    Session-Cookie ist das einfachste, wie du den Login realisieren kannst.

    Quellcode

    1. if (isset($_SESSION['login'])) {
    2. echo 'Already logged in';
    3. } else {
    4. $_SESSION['login'] = true;
    5. }


    Eine Sache noch: Du willst einen Admin-Modus haben, wo du die Textfelder so sehen kannst? Warum nicht einfach eine Seite, wo die TXT-Dateien aufgelistet werden und du die dann einzeln bearbeiten kannst?

    Ick hab da ma was vorbereitet :D (schick ich dir per PN)
    Hier findest du zwei Dateien:
    [code=php] fsb.php - Pastebin.com
    [code=php] SiteEditor.php - Pastebin.com

    Die eine ist zum Aufrufen und zum Konfigurieren (Hash, Pfad zum Ordner für die TXT-Dateien)
    Die andere ist eine Klasse, die die Arbeit übernimmt. Hier findest du unten Funktionen, die die Admin-Seiten ausgeben.
    Hier kannst du natürlich so viel HTML reinpacken, wie du willst. Ich habe nur hässliche blanke-Seiten drin.
    Wichtig ist hierbei nur, dass die Form-Felder erhalten bleiben, bzw. bei echoChooseSite der PHP-Befehl beibehalten wird.
    Neue Dateien musst du per Hand (+ Lese-/Schreibrechte) in den TXT-Ordner packen.

    Probiere es mal aus.
    Gruß
    Broken Sword

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword ()