Homefeatured, problemas com o módulo de cache para selecionar produtos aleatórios
Homefeatured, problemas com o módulo de cache para selecionar produtos aleatórios na configuração do módulo

Módulo de Homefeatured nos permite visualizar uma série de produtos em nosso site e, também, para cada carregamento, ter ativado a opção Aleatoriamente, indicar produtos, carrega esses produtos aleatoriamente. Ou que deveria ser.
O problema reside quando habilitado o cache e pode ser observados que, para cada carregamento de página, esta aleatoriedade não existe. Isto foi provado e acontece nas versões do módulo 1,5-1,6 para prestashop homefeatured versão 1.6. X (discupad se eu não tentei isso em versões mais: S). e, para os mais autodidacts, eu escrevo o código que você colocá-lo em homefeatured o módulo.
Eu acho que faz falta a explicação, tem sido as linhas em negrito a serem considerados para modificação. Embora, se você sustituís os métodos por estas trabalhará garantidas. Basicamente, ele verifica se habilitado ou não aleatoriedade em produtos para coletar o cache ou caso contrário, volte para ver os produtos.
_cacheProducts função pública)
{
$israndom = configurar: obter ('HOME_FEATURED_RANDOMIZE');
Se (! isset(HomeFeatured::$cache_products) | $israndom)
{
$category = nova categoria ((int) Configuration:get('HOME_FEATURED_CAT'), (int) contexto: getContext ()-> língua-> id);
$nb = (int) Configuration:get('HOME_FEATURED_NBR');
Se ($israndom)
HomeFeatured: $cache_products = $category-> getProducts ((int) contexto: getContext ()-> língua-> id, 1, (fazer $nb? $nb: 8), nulo, nulo, falso, verdadeiro, verdadeiro, (fazer $nb? $nb: 8));
mais
HomeFeatured: $cache_products = $category-> getProducts ((int) contexto: getContext ()-> língua-> id, 1, (fazer $nb? $nb: 8), 'posição');
}
Se (HomeFeatured: $ cache_products = false | vazio (HomeFeatured::$cache_products)))
retornar false;
}
função pública hookDisplayHome ($params)
{
$retorno = "";
$israndom = Configuration:get('HOME_FEATURED_RANDOMIZE');
$this-> _cacheProducts ();
$this-> smarty-> atribuir)
matriz)
«produtos» => HomeFeatured: $ cache_products,
'add_prod_display' => Configuration:get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
=> Imagem: getSize (ImageType:getFormatedName('home')), 'homeSize'
)
);
Se {} ($israndom)
$retorno = $this-> visor (Macrospara, 'homefeatured.tpl');
} {mais}
$retorno = $this-> visor (Macrospara, 'homefeatured.tpl', $this-> getCacheId());
}
retorno $retorno;
}
Esse código é certamente melhorou, mas agora deixo você e seus comentários.
Espero ter servido como apoio.
Uma saudação,
Escrever um comentário