css daten aus Datenbank?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • css daten aus Datenbank?

    Hallo,

    ich möchte das Layout von meiner Seite über ein Admin Bereich anpassen können.
    Die Layout (css) Daten würde ich dann in einer DB Speicher (Hintergrundfarbe, Textfarbe...).
    Aber wie bringe ich die dann auf die Seite? DB Abfrage ist klar, aber immer wenn ich
    irgend wo eine CSS Formatierung benötige, immer eine DB Abfrage zu machen ist ja nicht sehr sinnig.
    Ich könnte alle Einstellungen aus der DB in ein Array laden und daraus abfragen.
    Oder würdet Ihr das anders lösen.
    Gruß Scotch

  • #2
    Hallo,

    Zitat von Scotch Beitrag anzeigen
    ich möchte das Layout von meiner Seite über ein Admin Bereich anpassen können.
    Lohnt sich das? Ich meine, wie oft wirst du das Layout ändern wollen? Was ist mit Hintergrundbildern für das Layout? Die sind ja fest im CSS verdrahtet und müssten dann ja auch in die DB. Was spräche dagegen, in der Administrationsoberfläche die CSS-Datei(en) über ein textarea-Element komplett zu ändern oder meinetwegen auch hochzuladen?

    Zitat von Scotch Beitrag anzeigen
    Aber wie bringe ich die dann auf die Seite? DB Abfrage ist klar, aber immer wenn ich
    irgend wo eine CSS Formatierung benötige, immer eine DB Abfrage zu machen ist ja nicht sehr sinnig.
    Ich würde in diesem Falle eine komplette CSS Datei generieren. Also ist das eine Abfrage pro Seite, oder was meinst du mit "immer wenn ich irgend wo [sic!] eine CSS Formatierung benötige"?

    Zitat von Scotch Beitrag anzeigen
    Ich könnte alle Einstellungen aus der DB in ein Array laden und daraus abfragen.
    Könntest du das näher erläutern, denn momentan ergibt das für mich keinen Sinn. Wann willst du das denn abfragen? Willst du das CSS per AJAX nachladen oder schon klassisch mit ausliefern (empfohlen)? Wenn du es mit auslieferst, wozu dann das Array? Du musst ja ohnehin ein komplettes Stylesheet erzeugen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hallo Amica,

      erst einmal vielen Dank für Deine schnelle Antwort.
      Zitat von AmicaNoctis Beitrag anzeigen
      Hallo,

      Lohnt sich das? Ich meine, wie oft wirst du das Layout ändern wollen? Was ist mit Hintergrundbildern für das Layout? Die sind ja fest im CSS verdrahtet und müssten dann ja auch in die DB. Was spräche dagegen, in der Administrationsoberfläche die CSS-Datei(en) über ein textarea-Element komplett zu ändern oder meinetwegen auch hochzuladen?
      Ob sich das Lohnt weiß ich noch nicht, das versuche ich noch für mich herauszufinden. Wozu das ganze soll, ist das ich meine Seite für andere
      bereitstellen möchte, so das die Anwender dann das Layout für sich anpassen können. Ähnlich wie in einem Forum oder manchen Gästebüchern oder Bildergalerien.
      Mit den Hintergrund Grafiken hast Du natürlich recht, wobei man diese in einem Ordner per FTP mit den gleich Namen und Größe hoch laden könnte. Das mit dem Textarear Element verstehe ich noch nicht ganz, wie Du das meinst.

      Zitat von AmicaNoctis Beitrag anzeigen
      Ich würde in diesem Falle eine komplette CSS Datei generieren. Also ist das eine Abfrage pro Seite, oder was meinst du mit "immer wenn ich irgend wo [sic!] eine CSS Formatierung benötige"?
      Ich meine, wenn ich an statt die CSS ID/Calss in einem HTML Tag (heißt das so?)eintrage,
      per PHP denn passenden Eintrag aus der DB Abfrage und dann per echo in dem HTML Tag einfüge.
      z.b.
      PHP-Code:
      <li <?php echo css('li''navigation')?>>...... </li>
      Weib css() dann eine Funktion wäre, die aus der DB dann die Daten für
      genau dieses List Element holen würde.

      Zitat von AmicaNoctis Beitrag anzeigen
      Könntest du das näher erläutern, denn momentan ergibt das für mich keinen Sinn. Wann willst du das denn abfragen? Willst du das CSS per AJAX nachladen oder schon klassisch mit ausliefern (empfohlen)? Wenn du es mit auslieferst, wozu dann das Array? Du musst ja ohnehin ein komplettes Stylesheet erzeugen.
      Ok habe ich mich etwas schlecht ausgedrückt.
      Der Gedanke war das CSS in einer Datenbank an statt als File zu speichern.
      und dann beim Seitenaufruf aus der DB in ein Array laden so müßte ich dann nur die Daten aus dem Array und nicht jedes mal aus der DB holen (ähnlich wie oben schon beschrieben).

      Wie schon oben geschrieben, soll das Layout anpassbar sein, dass wenn
      man das Script jemanden andrem zur Verfügung stellt, derjenige dann die Möglichkeit hat, das Layout an seiner Webseite anzupassen.

      Zitat von AmicaNoctis Beitrag anzeigen
      Gruß,

      Amica
      Gruß Scotch

      Kommentar


      • #4
        Zitat von Scotch Beitrag anzeigen
        Ich meine, wenn ich an statt die CSS ID/Calss in einem HTML Tag (heißt das so?)eintrage,
        per PHP denn passenden Eintrag aus der DB Abfrage und dann per echo in dem HTML Tag einfüge.
        z.b.
        PHP-Code:
        <li <?php echo css('li''navigation')?>>...... </li>
        Das ist großer Käse!

        Du setzt einfach class-Attribute und zwar fest, also völlig unabhängig vom konkreten Layout. Das Styling machst du dann im CSS, wo jeder User sich auf Basis dieser Klassen was eigenes aussuchen kann. Daher: komplette CSS-Datei austauschbar, HTML-Code uniform. Anders wird es so ein Durcheinander, dass du in 2 Monaten selbst nicht mehr durchsiehst.

        Zitat von Scotch Beitrag anzeigen
        Das mit dem Textarear Element verstehe ich noch nicht ganz, wie Du das meinst.
        Das hat sich dann schon erledigt. Wenn die Benutzer das selber ändern sollen, werden die kaum CSS lernen wollen. Der Vorschlag beruhte auf der Annahme, dass du komplette CSS-Dateien in einer textarea bearbeiten könntest, statt sie jedes Mal per FTP auszutauschen.
        Zuletzt geändert von AmicaNoctis; 15.01.2010, 08:29.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          so ähnlich wie bei myspace der Profil editor?
          Wie Amica Noctis schreibt würde ich auch CSS & Html komplett trennen, die CSS Klassen in einer Tabelle speichern. Die klassen und ihre werte dann in einer Session halten.
          Wird aber ein wuchtiges Projekt....
          "I don't want to belong to any club that would accept me as a member."

          Groucho Marx

          Kommentar


          • #6
            Hallo Mcmurphy,
            Zitat von mcmurphy Beitrag anzeigen
            so ähnlich wie bei myspace der Profil editor?
            myspace kenne ich nicht.
            Zitat von mcmurphy Beitrag anzeigen
            Wie Amica Noctis schreibt würde ich auch CSS & Html komplett trennen, die CSS Klassen in einer Tabelle speichern. Die klassen und ihre werte dann in einer Session halten.
            Wird aber ein wuchtiges Projekt....
            CSS ist bei mir schon getrennt vom Html.
            Aber alles in eine Session zu laden davon bin ich auch
            nicht so überzeugt.
            Ich werde mir noch mal in einer ruhigen Minute Gedanken machen.
            Erst mal Danke für Eure Anregungen.

            Gruß Scotch

            Kommentar


            • #7
              Zitat von Scotch Beitrag anzeigen
              Aber alles in eine Session zu laden davon bin ich auch
              nicht so überzeugt.
              Dem schließe ich mich an. Die DB-Abfrage wird niemals so ressourcenlastig sein, dass sich das lohnt. Da die Browser CSS-Dateien ohnehin cachen, wird die Abfrage auch nur beim ersten Aufruf und danach nur bei vollständigen Reloads (Strg+F5) ausgeführt. Wenn man annimmt, dass ein Benutzer die Site nicht gleich nach der Startseite wieder verlässt, ist das also sogar noch ressourcenschonender als eine Session, obwohl der Unterschied ohnehin praktisch irrelevant ist.

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Am Resourcen- und Nervernschonendsten wäre aus meiner Sicht wohl folgendes:
                1. Im HTML Code semantische CSS Klassen verteielen (zB: <div class="header">...</div> oder <a class="user_profile" ...>...</a>)
                2. Im Kopf deiner HTML Seite eine PHP Datei wie eine CSS Datei einbinden (zB: <link rel="stylesheet" href="userstyle.css.php" type="text/css" />)
                3. In dieser PHP Datei fügst du folgenden Kopf ein:
                  PHP-Code:
                  <?php

                  // Inhaltstyp definieren, sonst liest der Browser die Datei nicht korrekt
                  header('Content-Type: text/css');

                  // Gültigkeitsdauer der CSS Datei bestimmen (hier: 1 Tag)
                  header('Expires: ' date('r'time() + 86400));

                  // evtl. die Session öffnen
                  session_start();

                  // Datenbank Verbindung aufbauen
                  $userstyles hole_benutzer_css_aus_datenbank($_SESSION['benutzerkey']);

                  ?>

                  /* Hier kann man nun CSS & PHP Code verwenden */

                  div.header {
                    font-weight: 1.5em;
                    color: <?php echo($userstyles['header_color']); ?>;
                  }

                  a.user_profile {
                    text-decoration: none;
                    background-color: <?php echo($userstyles['user_link_bgcolor']); ?>;
                  }

                  /* etc... */
                Zuletzt geändert von DSitC; 02.02.2010, 12:13.

                Kommentar

                Lädt...
                X