it-swarm.com.de

Kann ich Drag & Drop-Widgets wie iGoogle in WordPress erstellen?

Ich möchte so etwas wie iGoogle in WordPress machen, in dem ich die Widgets ziehen und ablegen kann. Wie könnte das in HTML 5 gemacht werden?

1
MsManiya

Das ist eine interessante Frage. Generell stimme ich EAMann zu - dies wäre in einer allgemeineren Diskussion besser geeignet. Da Sie hier jedoch nachfragen, werde ich Ihnen einen Wordpress-spezifischen Ansatz geben, den Sie möglicherweise verwenden möchten.

Im Kontext von Wordpress hat "Widget" offensichtlich eine bestimmte Bedeutung. Das Wordpress Sidebar-Widget-System ist sehr flexibel und profitiert von einem etablierten System mit einer großen Anzahl verfügbarer Widgets. Dies macht es zu einem vernünftigen Ausgangspunkt. Sie können beispielsweise eine Vorlage erstellen, die mehrere nebeneinander angeordnete Seitenleisten enthält.

Das Styling Ihrer Widgets sollte einfach genug sein. Ich empfehle dieses Tutorial , das diese Techniken mit der jQuery-Benutzeroberfläche demonstriert.

Es wird jetzt ein bisschen knifflig. Ich gehe davon aus, dass Sie möchten, dass jeder Benutzer seine eigenen Widgets konfigurieren kann und dass diese Änderungen dauerhaft sind. (Wenn eine dieser Anforderungen nicht erforderlich ist, wird es viel einfacher.) Dies ist schwierig - wir können das Wordpress-Widget-System nicht zum Speichern dieser Einstellungen verwenden, können sie jedoch zur Inspiration aufrufen.

Wenn Sie PhpMyAdmin (oder ähnliches) installiert haben, gehen Sie zu Ihrer WordPress-Datenbank und führen Sie Folgendes aus:

SELECT *
FROM `wp_options`
WHERE `option_name`
REGEXP '^widget_'
LIMIT 0 , 30

Sie sollten eine ganze Reihe von Ergebnissen mit gespeicherten PHP Arrays für die Details erhalten. Wenn jeder Benutzer seine eigenen Widgets einrichten könnte, könnten Sie dieses Format verwenden, aber eine Benutzer-ID an das Ende des Optionsnamens anhängen. Sie können ein einfaches Stück AJAXy-Javascript schreiben, um die Details der Widget-Anordnung bei jeder Änderung mitzuteilen. Der PHP Empfänger würde dann die Datenbank entsprechend aktualisieren.

Das ist eine Möglichkeit, die Benutzerdaten zu speichern. Wie rufen wir sie ab und zeigen sie erneut an? Persönlich würde ich WordPress zunächst die normalen Standardeinstellungen bereitstellen lassen. (Möglicherweise mit einem CSS-Overlay und/oder einem Progress-Spinner.) Dann würde ich eine andere AJAX -Anforderung abfeuern und die vom Benutzer angegebenen Widgets laden. Insbesondere würde ich zuerst das Arrangement und dann die Daten einzeln (über AJAX erneut) in jede Box laden. Dies würde die wahrgenommene Ladezeit beschleunigen.

Also los geht's. Entschuldigung, es ist eine sehr gute Antwort, aber es ist eine ziemlich weitreichende Frage. Ich hoffe, ich habe dir einige Ideen gegeben. Viel Glück!

PS Wenn Sie dies zum Laufen bringen, würde ich empfehlen, es als Plugin zu verteilen.

3
Tom Wright