2016-12-20 2 views
-2

Ich brauche ein wenig Hilfe. Stellen Sie sich vor, dass in der Datenbank für jeden Benutzer Farbe des Hintergrunds gespeichert hat. Jedes Mal, wenn Benutzer anmelden, zuerst für diesen Benutzer in einem Ordner wird CSS-Datei mit dem Namen der ID des Benutzers generiert und in HTML-Vorlage enthalten.Symfony generieren CSS

Ich brauche Hilfe, um zu verstehen, wie man CSS-Datei zu generieren?

Danke.

+0

Was verwenden Sie zum Authentifizieren von Benutzern? FOSUserBundle? –

+0

Ja, ich verwende FOSUserBundle. –

Antwort

-1

Ganz einfach ...

Sie benötigen eine Zweig-Datei für jeden Benutzer in Ihrem gewünschten Ordner zu erzeugen, und „inline“ CSS darin platzieren.

Um die Datei zu generieren, erstellen Sie einen Dienst, den Sie aufrufen, wenn eine Seite geladen wird Es muss zuerst prüfen, ob die Datei vorhanden ist, wenn dies der Fall ist, wird es daraus gelesen (keine Abfrage an die DB), wenn nicht, wird es die Datei generieren und Daten aus der DB lesen müssen.

Schauen Sie sich die Antwort von mir und Gopal auf dieser Seite um zu wissen, wie man einen Service How to use session in Symfony.
sould Sie können es für Ihren Bedarf verwenden ...;)
am Symfony Filesystem Component Schauen Sie auch

file_put_contents() sollten Sie die Datei schreiben Inhalt helfen ...;)

+0

Danke. Dieser Teil ist klar. Beispiel: Sie haben eine Standard-CSS-Datei. Aber Sie haben einige Ordner, in denen Sie Bilder und andere Dinge speichern. Rufen Sie Data auf, innerhalb von Daten haben Sie Ordner von 1 bis n, wobei n die ID des Benutzers ist. Also in Ordner n haben Sie CSS-Datei, die in HTML enthalten sein wird. Wie kann ich diese CSS-Datei basierend auf Daten aus der Datenbank generieren? –

+0

Sorry, habe ein bisschen zu schnell gelesen, meine Antwort bearbeitet, das sollte dir ein bisschen mehr helfen ...;) – Preciel

+0

Sessions in nicht guter Weise zu verwenden, um Benutzerinformationen zu speichern. In der Tat ist es nicht dauerhaft ... –

0

I Symfony mit FOSUserBundle , können Sie app.user verwenden, um den Benutzer in Ihren Zweigdateien zu erhalten.

Wenn Sie eine MySQL-Konsole öffnen und describe fos_user; eingeben, sehen Sie alle Felder, die Sie in Ihrer Twig-Datei verwenden können. So in der Tabelle können Sie für jede der FOS Benutzer speichern ein color

dann in Zweig könnten Sie so etwas wie folgt verwenden:

{% if app.user %} 
    {% set backColor = app.user.color %} 
{% else %} 
    {% set backColor = 'none' %} 
{% endif %} 
... 
<body style="background-color:{{ backColor }};"> 

Sie erhalten die Idee ... Vielleicht möchten, um herauszufinden, eine Möglichkeit, die Farbeinstellung für den FOS-Benutzer mithilfe eines Symfony-Formulars zu speichern. Und dann Präferenz in der Datenbank speichern. Sie können eine separate Frage dafür aufwerfen, wenn Sie Schwierigkeiten haben - es sollte einfach sein.

Verwandte Themen