Estou apenas começando um tema responsivo baseado no Omega, concentrando-me primeiro no layout móvel.
Existem certos blocos que provavelmente serão considerados muito pesados para incluir no layout móvel e outros que precisarão ser introduzidos especificamente para esse layout (menus diluídos, barra de usuários atenuada etc.).
Eu poderia ocultar facilmente os blocos indesejados no layout para dispositivos móveis com CSS e incluir os blocos específicos para dispositivos móveis no layout padrão e ocultá-los (para que eles sejam mostrados apenas para dispositivos móveis), mas isso parece uma maneira muito antiga de pensar sobre isto. Se os blocos não forem mostrados, a sobrecarga extra em que incorrem seria realmente inaceitável (especialmente considerando o número de consultas de banco de dados extras que o conteúdo dos blocos ocultos adicionaria).
Eu estou pensando que deve haver uma maneira limpa e agradável de interceptar o processo de tomada de decisão do bloco no início da compilação da página e excluir / incluir blocos com base em alguma detecção de sistema operacional, mas estou deixando em branco como isso pode ser possível.
Também vou abordar o fato de o Varnish estar em frente a este site, o que deve tornar as coisas mais divertidas :)
Existem módulos / estratégias conhecidas por aí que podem ajudar com isso?
Devo acrescentar que o uso do módulo Context não é uma opção, pois o site já está completo, e movê-lo para o Contexto seria uma tarefa enorme neste momento.
Respostas:
Conforme já observado nos comentários, isso exige que você configure o verniz para não armazenar em cache apenas no URL da solicitação, mas também variar no agente do usuário. Há um exemplo relevante no wiki do verniz, VCLExampleNormalizeUserAgent .
Uma vez que o pedido realmente não acertar o site, você precisa para determinar quais blocos para mostrar e não mostrar. Eu consideraria que não é menos do que um desastre fazer isso com eval , portanto as opções mais comuns restantes são Contexto e Painéis .
Com o site já construído. refazer a colocação de todas as páginas / blocos com qualquer um dos módulos provavelmente não é uma opção, mas com um criador de perfil e a aplicação de 80 a 20 , seria possível obter ganhos significativos de desempenho refazendo apenas páginas específicas.
fonte
Não posso entrar em muitos detalhes, pois não uso nenhum dos módulos há muito tempo (construo todos os meus sites com o Contexto desde o início e não atendi a algo que ainda não criei para um enquanto isso, eu não tive esse problema antes), mas acho que você deve conseguir juntar algo com o Mobile Tools and Spaces.
Espaços
Ferramentas móveis
A página do projeto para o MT diz que não está pronta para produção, o que pode ser um problema - depende da última atualização, pois o último commit foi neste mês.
*EDITAR
ESQUECI COMPLETAMENTE DESTES!
Browscap
Bloco Browscap
O Browscap depende da configuração do servidor, mas se você pode usá-lo, o segundo módulo fornece configurações de visibilidade extra para cada bloco na página de edição do bloco.
fonte
você pode usar um suporte ao navegador jQuery para obter a resolução da tela:
Adicione um script PHP simples para exibir a configuração do bloco relacionado.
fonte
Você pode usar o Mobile Detect Block, mas atualmente estou procurando uma solução que funcione com a largura da janela e com as
AdaptiveTheme
consultas de mídia do módulo Breakpoints para não duplicar esse código e sobrecarregar o download do usuário final mais do que é. Eu também tive resultados mistos com o Mobile Detect, não atendendo a um dispositivo com o qual testei, o que o torna um pouco inútil como o Browscap, se não puder fornecer resultados confiáveis.Algumas discussões têm pessoas que desejam se afastar do Browscap por um motivo ou outro, daí a mudança para o Mobile Detect .
fonte