Tudo o que quer saber antes de instalar.
Uma análise detalhada de como o Limpeza HTML das Descrições de Produtos e Categorias: Eliminar o Código do Word, os Estilos Inline e as Etiquetas Vazias (PrestaShop 8 e 9) funciona, porque o construímos assim e o raciocínio por trás das funcionalidades acima.
O que o módulo retira
Uma descrição colada do Word chega com um comentário condicional do Office no início, uma ilha XML, parágrafos com a classe MsoNormal, estilos inline que impõem um tipo de letra e um tamanho, etiquetas o:p vazias e séries de três espaços inquebráveis. Nada disto é visível na ficha, mas tudo fica guardado em base de dados, enviado a cada visitante e lido pelo Google. O módulo identifica estes padrões e retira-os. O texto, as ligações, as listas, as tabelas e as imagens são mantidos.
Um verdadeiro parser, não uma expressão regular
A limpeza passa pelo DOMDocument. O documento é reconstruído, o que de caminho repara as etiquetas por fechar e os aninhamentos incorretos em vez de os agravar. Duas passagens por expressões regulares enquadram a análise DOM, apenas para aquilo que um parser não sabe representar: comentários condicionais, ilhas XML e etiquetas com namespace. Se a análise falhar num conteúdo invulgar, o módulo devolve o valor original sem lhe tocar.
Simulação, lotes e cópia de segurança
O processamento é feito por lotes em AJAX, com barra de progresso e botão de paragem. O tamanho do lote desce até 5 registos nos alojamentos mais limitados, o que evita o timeout do PHP mesmo num catálogo com várias dezenas de milhares de fichas. No modo de simulação nada é escrito: obtém os contadores, o peso poupado e dez comparações antes e depois. No modo real, cada valor substituído é copiado para a tabela de cópias de segurança com um identificador de execução, o que permite repor tudo a partir do back-office.
O que o módulo não parte
Os iframes de fornecedores de confiança são mantidos com os seus atributos allow e allowfullscreen e as suas dimensões; a verificação incide sobre o domínio real, pelo que um endereço do tipo youtube.com.exemplo.tld é recusado. As células de tabela vazias são preservadas para não deformar o layout. O conteúdo das etiquetas pre, code e textarea escapa à normalização dos espaços. Por fim, o motor é idempotente: voltar a lançar a limpeza numa ficha já tratada não produz qualquer alteração, logo não gera datas de atualização parásitas.
Limpeza ao gravar
Uma opção aplica as mesmas regras sempre que grava um produto ou uma categoria no back-office, através dos hooks acionados antes da escrita do objeto. Está desativada por predefinição: é preferível validar as regras em simulação antes de as aplicar em contínuo. Este modo não cria entradas de cópia de segurança, ao contrário do processamento por lotes.
Ainda não existem avaliações.