Error en promote10.php

25 views
Skip to first unread message

Fermin Molina

unread,
May 6, 2016, 4:54:40 AM5/6/16
to Meneame desarrollo
Hola!

Ejecutando el promote10.php he visto en log varios warnings, entre ellos, este:

PHP Notice:  Undefined variable: past_karma in /home/XXXXXX/scripts/promote10.php on line 449

En la línea 449, en la función update_link_karma está esta sentencia:

User::calculate_affinity($link->author, $past_karma*0.3);

Claro que $past_karma está definida en la función "promote" y no globalmente, por lo que el resultado del producto $past_karma*0.3 siempre es "0".

Ese parámetro se usa como un "karma mínimo" para hacer un SELECT (en User::calculate_affinity) y acotar resultados con karma superior a ese mínimo y luego hacer cálculos (que en el caso del bug, siempre será 0, lo que descarta valores negativos de karma en el SELECT a la base de datos).

Esto está ocurriendo desde la creación del promote10.php, porque en el promote9.php esa parte del código estaba en el mismo "scope" de variables (supongo que desde que se añadieron los subs).

No sé si afecta mucho al funcionamiento de menéame, porque aparentemente "funciona", pero quizás ese no era el resultado esperado cuando se diseñó el algoritmo que calcula afinidades.

La forma de solucionarlo es pasar la variable $past_karma por parámetro.

Línea 190:
$changes = update_link_karma($site_id, $link, $past_karma);

Línea 428:
function update_link_karma($site, $link, $past_karma) {

Saludos!

/Fermin


Reply all
Reply to author
Forward
0 new messages