it-swarm.dev

Mohu vytvářet pomůcky typu drag and drop jako iGoogle v aplikaci WordPress?

Chci udělat něco jako iGoogle ve WordPressu, ve kterém mohu přetahovat widgety. Jak by to mohlo být provedeno v HTML 5?

1
MsManiya

To je zajímavá otázka. Obecně souhlasím s EAMannem - to by bylo vhodnější pro obecnější diskusi. Vidím, jak se ho zeptáte zde, ale dám vám specifický přístup k aplikaci Wordpress, kterou budete chtít použít.

V kontextu Wordpressu má "widget" zřejmě specifický význam. Wordpress sidebar widget systém je vysoce flexibilní a těží z toho, že zavedený systém s velkým počtem widgetů k dispozici. To z něj činí rozumné místo, kde začít. Mohli byste například vytvořit šablonu, která obsahuje více postranních panelů uspořádaných vedle sebe.

Stylování vašich widgetů by mělo být snadné. Chcete-li je přetáhnout, skládat, upravovat, atd. Doporučuji tento tutoriál , který demonstruje tyto techniky s jQuery UI.

Teď je to trochu složitější. Předpokládám, že chcete, aby každý uživatel mohl konfigurovat své vlastní widgety a aby tyto změny byly trvalé. (Pokud je některý z těchto požadavků zbytečný, je to mnohem snazší.) To je těžké - nemůžeme použít systém Wordpress widget pro ukládání těchto preferencí, ale můžeme jít k němu pro inspiraci.

Pokud máte nainstalovaný PhpMyAdmin (nebo podobný), přejděte do databáze wordpress a proveďte následující:

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

Měli byste se dostat celé zatížení výsledků s uloženými PHP pole pro podrobnosti. Pokud by každý uživatel měl mít možnost nastavit si vlastní widgety, můžete tento formát použít, ale ke konci názvu volby přidejte ID uživatele. Dalo by se napsat jednoduchý kus AJAXy javascript, aby se rozesílaly podrobnosti o uspořádání widgetů pokaždé, když se změní. Přijímač PHP pak odpovídajícím způsobem aktualizuje databázi.

Takže je to jeden ze způsobů, jak uložit data uživatelů, ale jak je znovu načíst a zobrazit? Osobně bych nejprve nechal wordpress sloužit jako výchozí. (Možná s překrytím CSS a/nebo průběžným spinnerem.) Pak jsem vypnul další požadavek AJAX a načíst uživatelem určené widgety. Konkrétně bych nejprve načíst uspořádání, pak znovu jednotlivě načíst data (přes AJAX) do každé krabice. To by urychlilo vnímanou dobu načítání.

Takže tam jdeme. Je nám líto, že je to taková vysoká odpověď, ale je to dost dalekosáhlá otázka. Doufám, že jsem vám dal pár nápadů. Hodně štěstí!

PS Pokud se vám tato práce, doporučuji distribuci jako plugin.

3
Tom Wright