Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera,
estou com uma dificuldade em fazer um contador para menu tipo do Facebook. (os números que aparecem quando alguém curtiu algo...)
Bom, funciona assim:
=====Menu=====
Item 1 (3)
Item 2 (7)
Item 3
Sub Item 3
==============
O que acontece é o seguinte:
Um administrador posta um novo conteúdo e a cada conteúdo não lido...aparece o número de docs ao lado do item, conforme desenho acima e igualzinho ao do Facebook.
A parada é...como eu consigo fazer isso?
Minha estrutura é assim:
Tenho as tabelas CONTEUDO, VISTOxUSUARIO, MENU
A tabela conteúdo é relacionada com o menu. Ela identifica a qual menu pertence.
A tabela Menu tem a estrutura dos menus..pais, filhos, subfilhos onde as notícias são cadastradas.
Já a tabela VISTOxUSUARIO guarda as informações do usuário que leu e o id da notícia que ele leu.
E então, como posso fazer isso?
Não preciso necessariamente do código..gostaria mais é de discutir isso com vcs.
Aguardo o apoio e espero ajudar também com essa dúvida.
Abs
Certo, não conhecia ainda o localStorage mas achei sensacional.
Voltando ao tópico, essa parte que vc citou seria uma das partes.
Antes de armazenar qualquer coisa, a página precisa ser carregada e já fazer a contagem. Então essa parte da contagem que é o "core" do barato......
Nesse caso você sugere algo? Alguém mais?
Acho legal que esse tópico não é tão comum e servirá de aprendizado pra muitos, inclusive eu..rs
Vlw mangakah
Minha ideia:
Usando localStorage para armazenar as informações (cookies como polyfill para navegadores sem suporte a WebStorage), gravar no lado cliente a data-hora do último acesso do usuário. Quando o usuário visitar a página novamente, essa informação é enviada para o servidor, que retorna os itens adicionados desde aquela data-hora que não estejam marcados como lidos.
Outra parte de informação indica quais itens o usuário já leu ou marcou como lido. Essa data-hora é então atualizada adquirindo o valor do item não-lido mais antigo.
Para usuários logados, armazenar essas informações no banco de dados.
last-visit = (data, hora, fuso-horário)
marked-as-read = [item1, item2, ...itemn]