it-swarm-pt.tech

Posso criar arrastar e soltar widgets como o iGoogle no WordPress?

Eu quero fazer algo parecido com o iGoogle no WordPress, no qual eu posso arrastar e soltar os widgets. Como isso pode ser feito no HTML 5?

1
MsManiya

Esta é uma questão interessante. Geralmente, eu concordo com EAMann - isso seria mais adequado em uma discussão mais geral. Vendo como você pergunta aqui, no entanto, eu vou dar uma abordagem específica do Wordpress que você pode querer usar.

No contexto do Wordpress, "widget" obviamente tem um significado específico. O sistema de widgets da barra lateral do Wordpress é altamente flexível e se beneficia de ser um sistema estabelecido com um grande número de widgets disponíveis. Isso faz com que seja um lugar sensato para começar. Você poderia, por exemplo, criar um modelo que contenha várias barras laterais dispostas lado a lado.

Estilizar seus widgets deve ser bastante fácil. Para fazê-los arrastar-soltar, dobrável, editável, etc. Eu recomendo este tutorial , que demonstra essas técnicas com jQuery UI.

Agora fica um pouco complicado. Estou assumindo que você deseja que cada usuário possa configurar seus próprios widgets e que essas alterações sejam persistentes. (Se qualquer um desses requisitos for desnecessário, fica muito mais fácil.) Isso é difícil - não podemos usar o sistema de widget do Wordpress para armazenar essas preferências, mas podemos procurá-lo para inspiração.

Se você tiver o PhpMyAdmin (ou similar) instalado, vá para o banco de dados do wordpress e execute o seguinte:

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

Você deve obter uma carga inteira de resultados com matrizes PHP armazenadas para os detalhes. Se cada usuário fosse capaz de definir seus próprios widgets, você poderia usar esse formato, mas anexar um ID de usuário ao final do nome da opção. Você poderia escrever um simples pedaço de javascript AJAXy para enviar os detalhes do arranjo de widget cada vez que ele muda. O receptor PHP atualizaria o banco de dados de acordo.

Então, essa é uma maneira de salvar os dados dos usuários, mas como recuperamos e os exibimos novamente? Pessoalmente, eu deixaria wordpress servir os padrões normalmente no início. (Possivelmente com uma sobreposição de CSS e/ou um spinner de progresso). Então eu dispararia outra requisição AJAX e carregaria os widgets especificados pelo usuário. Especificamente, eu carregaria o arranjo primeiro, depois carregaria individualmente os dados (via AJAX novamente) em cada caixa. Isso aceleraria o tempo de carregamento percebido.

Então lá vamos nós. Desculpe, é uma resposta de alto nível, mas é uma questão bem abrangente. Espero ter te dado algumas ideias. Boa sorte!

PS Se você conseguir este trabalho, eu recomendo distribuí-lo como um plugin.

3
Tom Wright