2009-04-04 21 views
0

Ich mache eine E-Commerce-Art von Website, und es hat ein CMS, in dem der Administrator Benutzer Themen erstellen und das aktuelle Design des Themas ändern konnte. Ich benutze jquery. Die Stil-/Themeneigenschaften werden in der Datenbank gespeichert und in eine XML-Datei abgerufen.Dynamic UI styling/theming

und ich verwende jquery die CSS-Eigenschaften auf der Seite zu manipulieren, die Eigenschaften des XML ..

ist dies die praktische Art und Weise dynamisches themeing/Styling zu tun? danke.

Antwort

0

jQuery UI - http://jqueryui.com/themeroller/

Die Bibliothek bietet einen Standardsatz von Widgets und Effekte, die Sie verwenden können, um UI zu bauen. Es unterstützt auch mehrere Themen.

+0

Ich meine, ich möchte die Endbenutzer tun das Design –

0

Warum machst du nicht Theming auf dem Server wie die meisten CMS es tun? Ich bin mir nicht sicher, ob ich die Praktikabilität des Herunterladens von dynamischem Code in den Browser verstehe, wenn Sie einfach die entsprechende CSS senden könnten.

Sie müssen auch den Fall von no-Javascript in einigen Browsern sowie sehr abhängig von der Geschwindigkeit des Browsers und Benutzer-PC, um diese Sachen laufen zu berücksichtigen. Core 2 Duo könnte Thema selbst schön und schnell, aber meine Atom-basierten Netbook ist nicht so schnell

+0

die Themeneigenschaften sind tatsächlich in der Datenbank gespeichert. Wir benutzen Java-Servlets und jsp. –

3

IMHO, nein.

Wenn Sie den CSS-Benutzern auf Ihrer Website die volle Kontrolle über das CSS geben möchten, lasse ich sie wahrscheinlich ihre eigenen CSS-Dateien hochladen und listet sie einfach in der DB auf. Wählen Sie die entsprechende Datei Server-Seite und laden Sie diese. Kein unordentlicher "Flash of unstyled content" oder JS-Abhängigkeiten.

Wenn Sie nur die Benutzer ein paar bestimmte Elemente bearbeiten möchten, dann vielleicht Sie können diese spezifischen Elemente in der Datenbank speichern, aber Sie sollten immer noch dynamisch generieren die CSS-Datei (über PHP oder was haben Sie) und Sende das an den Kunden.

Oh, und warum verwenden Sie überhaupt XML? Sie fügen einfach eine zusätzliche Schicht von Komplexität hinzu, so weit ich das beurteilen kann.

0

Da andere bereits kommentiert haben, wenn Sie wollen, dass der Admin die volle Kontrolle über das Styling der Site hat (wie die meisten populären CMSs), dann müssen Sie dem Admin erlauben, ihre eigenen Stylesheets oder sogar HTML-Templates hochzuladen. Sie können auch mehrere vorgefertigte Stylesheets und Vorlagen für Benutzer hinzufügen, die keine eigenen erstellen können oder wollen.

Ich weiß, dass einige Web-Dienste wie LiveJournal und Xanga restriktive Theming-Systeme haben, die nur Benutzern erlauben, die Farben und Schriftstile ihrer persönlichen Seiten zu ändern. Aber IMHO wäre diese Art von Themensystem nicht für Geschäftsseiten geeignet. Es gibt dem Site-Administrator zu wenig Kontrolle über das Aussehen/Layout ihrer Site. Egal wie groß Ihre Kernvorlage ist. Wenn Sie Ihren Benutzern nur einige Farben und Schriftstile ändern lassen, werden Sie immer noch mit einer Reihe von Cookie-Cutter-Websites enden, die alle ziemlich gleich aussehen.

Der Admin sollte in der Lage sein, eine eigene CSS-Vorlage auf den Store anzuwenden, damit das Unternehmen, wenn es ein professionell gestaltetes Layout wünscht, eines auf seiner Site implementieren kann.

Was Sie jedoch tun können, ist, mit dem CMS einen CSS-Generator für diejenigen Admins aufzunehmen, die nicht wissen, wie sie ihr eigenes CSS schreiben. Es könnte einfach eine Assistentenschnittstelle sein, die den Benutzer durch einen Schritt-für-Schritt-Prozess führt, um ein grundlegendes benutzerdefiniertes Stylesheet zu erzeugen.

+0

danke ... jetzt..ich muss noch einmal überdenken meine Logik in der Lage, die CSS-Generator-Zeug anwenden ...: '((( –

1

Auf einer Website, an der ich arbeitete, begann ich Doign ungerade/gerade Tabellenzeile mit jQuery Styling, weil die Syntax trivial sowie einige andere Tabellen-Styling ist. Aber dann habe ich für größere Tabellen mit dem Testen begonnen und auf Firefox 3 (was für die modernen Browser einigermaßen Leistung bringt) habe ich so viel wie 200-500ms (laut YSlow) ausgegeben, was die Seite inakzeptabel hoch machte.

Sie möchten so viel wie möglich auf dem Server tun - im Grunde alles, was Sie auf dem Server tun können, während Sie die Seite rendern, die Sie sollten. Es wird viel schneller so sein.

Speichern Sie jQuery für die Dinge, die Sie nicht auf dem Server tun können.