Resolver problemas
PrestaShop: recuperar um bloco desaparecido do tema com «Transplant a module»
Por vezes, um bloco que sempre foi mostrado corretamente desaparece da loja: o seletor de idiomas, o carrinho, o menu… Não há nenhum erro e, mesmo que reinstale ou reponha o módulo, continua sem aparecer.
O mais provável é que o módulo tenha perdido a sua ligação (hook) à posição do tema em que era mostrado. Um tema do PrestaShop é uma tela com uma série de posições (displayNav, displayTop, displayFooter…), e cada módulo liga-se a uma ou várias. Se perder a ligação, simplesmente deixa de ser apresentado.
Como exemplo, usamos um caso real: o seletor de idiomas (ps_languageselector) tinha desaparecido da barra de navegação. Os mesmos passos servem para qualquer outro módulo.
1. Descobrir em que posição deveria estar
Abra a pasta do tema que usa, themes/NOMBRE_PLANTILLA/, a partir do gestor de ficheiros do cPanel ou por FTP. Lá dentro, na pasta config, abra o ficheiro theme.yml e procure o nome técnico do módulo, que é o nome da sua pasta dentro de modules (neste caso ps_languageselector).

Neste tema aparece uma única vez, dentro da posição displayNav. Essa é a posição em que o tema espera o módulo. No tema Classic do PrestaShop 1.7 e 8, pelo contrário, o seletor de idiomas vai em displayNav2: por isso convém confirmá-lo no seu próprio theme.yml.
Se o módulo não aparecer no theme.yml, veja em que posição está noutra loja com o mesmo tema ou na documentação do tema.
2. Verificar se continua ligado
No painel do PrestaShop, vá a Design > Positions. Procure a posição que encontrou (displayNav no exemplo) e verifique se o módulo aparece lá dentro.

Se não aparecer, encontrou o problema.
Se aparecer mas não se vir na loja, o problema é outro. Clique no módulo, em Edit, e reveja a lista de Exceptions: pode estar excluído da página que está a ver. Verifique também em Modules > Module Manager se está ativado.
3. Transplantar o módulo
Em Design > Positions, clique em Transplant a module (no canto superior direito) e preencha:
- Module: o que desapareceu; no exemplo, Language selector block (seletor de idioma).
- Transplant to: a posição que encontrou no
theme.yml, displayNav no exemplo.

Clique em Save.
4. Verificar o resultado
Esvazie a cache em Advanced Parameters > Performance > Clear cache e recarregue a loja: o bloco deverá voltar a aparecer tal como estava.
Se aparecer numa ordem diferente da anterior dentro da barra, volte a Design > Positions e arraste o módulo dentro da sua posição até o deixar no sítio. Se aparecer duplicado, é porque também estava ligado a outra posição que é mostrada na mesma zona: retire a ligação a mais com a opção Unhook do menu do módulo nessa posição.
Se tiver multiloja, certifique-se antes de começar de que está a editar a loja correta no seletor de lojas da parte superior.
Também lhe pode ser útil
- Erro ao instalar módulos no PrestaShop, The file is missing Diagnostique The file is missing a partir do código de upload do PHP e dos registos antes de alterar...
- Ativar temporariamente o modo de depuração do PrestaShop Obtenha a exceção exata ativando temporariamente _PS_MODE_DEV_ a partir do painel ou do defines.inc....
- Erro "An error occurred while sending the message" no formulário de contacto do PrestaShop Diagnostique a rejeição do formulário de contacto e corrija um override antigo apenas quando não env...
- O Update Assistant mostra "Please fix the following error(s)" Localize o requisito ou o caminho sem permissão de escrita que bloqueia o Update Assistant do Presta...
Algo não bate certo ou mudou? Diga-nos e revemos.