Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#15071
Então, criei um módulo que exibe produtos aleatórios, a partir de modificações no módulo "Latest".

IMPORTANTE:
- Renomeie em catalog/theme a pasta default, para o nome do seu tema. (Ex. meutema)
- Renomeie em admin/language a pasta english para a língua utilizada. (Ex. portuguese-br)

Download:
random.rar
Espero que façam bom proveito.
Você não está autorizado a ver ou baixar esse anexo.
#15116
Amigo, eu sei que sua intenção foi boa... mas eu preciso advertir os usuários.

Esse módulo FUNCIONA mas é um clone do latest, e foi feito com base numa alteração proposta em outro tópico aqui do fórum, e ela tem 4 erros:

1- Tem funções que consomem processamento desnecessariamente (srand e microtime) -- elas não precisam mais alimentar o shuffle, ele já é auto-alimentado desde o php 4.3
2- a variável de ordenação "sort" da consulta SQL está fazendo uso do rand (essa ordenação deve ser feita somente no PHP, já que a ordenação no SQL é mais lenta (especialmente nesse caso, onde a função getProducts chamada possui 4 LEFT JOINS) e já existe no php o shuffle em seguida!
3- order by RAND em uma consulta que já é rand() e que ainda vai ser shuffleada depois é o cúmulo do pleonasmo vicioso (deveria ser tão somente ASC ou DESC -- ou vazio de prefêrencia!)
4- está limitando a busca com base em (10 * o limite de produtos definido no módulo), então para listar 5 produtos, todo o processamento do rand é feito na base, mas apenas 50 são trazidos ao PHP para o shuffle (o que torna ainda mais desperdício).

e no final das contas.. não é uma randomização perfeita.

Como eu comentei no outro tópico, eu já fiz um módulo seguindo as diretrizes do MySQL e do PHP (eu concluí ele dia 6) e só não o lancei ainda pois estou terminando meu site de módulos.

[edit] Concluído: https://forum.opencartbrasil.com.br/ ... =39&t=2991
#15137
Renato Frota escreveu:Amigo, eu sei que sua intenção foi boa... mas eu preciso advertir os usuários.

Esse módulo FUNCIONA mas é um clone do latest, e foi feito com base numa alteração proposta em outro tópico aqui do fórum, e ela tem 4 erros:

1- Tem funções que consomem processamento desnecessariamente (srand e microtime) -- elas não precisam mais alimentar o shuffle, ele já é auto-alimentado desde o php 4.3
2- a variável de ordenação "sort" da consulta SQL está fazendo uso do rand (essa ordenação deve ser feita somente no PHP, já que a ordenação no SQL é mais lenta (especialmente nesse caso, onde a função getProducts chamada possui 4 LEFT JOINS) e já existe no php o shuffle em seguida!
3- order by RAND em uma consulta que já é rand() e que ainda vai ser shuffleada depois é o cúmulo do pleonasmo vicioso (deveria ser tão somente ASC ou DESC -- ou vazio de prefêrencia!)
4- está limitando a busca com base em (10 * o limite de produtos definido no módulo), então para listar 5 produtos, todo o processamento do rand é feito na base, mas apenas 50 são trazidos ao PHP para o shuffle (o que torna ainda mais desperdício).

e no final das contas.. não é uma randomização perfeita.

Como eu comentei no outro tópico, eu já fiz um módulo seguindo as diretrizes do MySQL e do PHP (eu concluí ele dia 6) e só não o lancei ainda pois estou terminando meu site de módulos.
Grato, vou corrigir.

Ola @felipesujf Se você extrai os arquiv[…]

extensção -> Módulos

Voltou ao normal sozinho

Olá Uso o OpenCart 2 e tenho algumas d&uac[…]

Night games. One night, no worries Real Women P[…]