Página 1 de 1

MOD Evaluation Topics (Mostrar texto tooltip/alt en label)

Publicado: 04 May 2011, 11:39
por Dr0gNan
Buenas. Mi consulta es sobre la modificacion de este MOD, actualmente lo tengo instalado en mi entorno de pruebas y funciona correctamente.

El caso es que quiero que la nota media de las puntuaciones se muestre en el primer mensaje. Actualmente dicha nota aparece en la tooltip/alt de las imagenes de las estrellitas. He indagado un poco en el codigo y he visto que se llama a una funcion que retorna un control HTML de img con el alt.

He pensado que creando una funcion que en vez de la imagen retorne solamente el texto de la tooltip y la muestre por pantalla era suficiente pero no consigo mostrarla en el tema (viewtopic), en cambio en viewforum aparece correctamente. Unicamente, aun llamando a la nueva funcion acaba 'pintandome' en el tema las dichosas estrellitas duplicadas con la tooltip.

El archivo donde se encuentra la funcion que retorna la imagen (evaluation_get_image) y la nueva funcion que retorna un texto con el contenido de la tooltip (evaluation_get_count) se encuentran en la ruta siguiente: root\mods\viewforum.php

Pongo el contenido de dicho PHP con la funcion evaluation_get_image y evaluation_get_count:

Código: Seleccionar todo

function evaluation_get_image()
{
global $user, $row, $forum_data;

$return = '';

if((isset($row['evaluation_count'])) && ($row['evaluation_count']))
{
if(isset($row['own_evaluation']) && $row['own_evaluation'] == 1) // Has he already evaluated and evaluated with one star?
{
$own_evaluation = $user->lang['YOUR_EVALUATION1'];
}
elseif(isset($row['own_evaluation']) && $row['own_evaluation'] > 1) // Has he already evaluated and evaluated with two or more stars?
{
$own_evaluation = sprintf($user->lang['YOUR_EVALUATION2'], $row['own_evaluation']);
}
else
{
$own_evaluation = '';
}
$alt = sprintf($user->lang['TOPIC_EVALUATION_RESULT'], $row['evaluation_count'], $row['evaluation'], $own_evaluation);

for($i = 1; $i <= $forum_data['forum_evaluation']; $i++)
{
if($i <= $row['evaluation'])
{
$img = $user->img('icon_evaluation_light', $alt);
}
elseif(($i <= ceil($row['evaluation'])) && ((floor($row['evaluation']) + 0.4) <= $row['evaluation']))
{
$img = $user->img('icon_evaluation_half', $alt);
}
else
{
$img = $user->img('icon_evaluation_dark', $alt);
}
$return .= $img;
}
}
return $return;
}

Código: Seleccionar todo

function evaluation_get_count()
{
global $user, $row, $forum_data;

$return = '';

if((isset($row['evaluation_count'])) && ($row['evaluation_count']))
{
$alt = sprintf($row['evaluation_count']);

$return .= $alt;
}
return $return;
}
El caso es que no se apenas PHP y por muchos manuales que he revisado hay cosas que no entiendo al mirar el codigo como esto:

Código: Seleccionar todo

$img = $user->img('icon_evaluation_light', $alt);

Muchas gracias, la verdad es que estoy un poco perdido. Un saludo ;)

Re: MOD Evaluation Topics (Mostrar texto tooltip/alt en labe  Tema Solucionado

Publicado: 04 May 2011, 22:18
por Dr0gNan
Bueno, finalmente he conseguido solucionarlo, el caso es que estaba modificando el archivo de viewforum en vez del de viewtopic.

Basta con editar el viewtopic.php de la carpeta mods y al final de la funcion, debajo de:

Código: Seleccionar todo

		$template->assign_var('EVALUATION_IMG', $out);
añadir una linea como esta:

Código: Seleccionar todo

		$template->assign_var('EVALUATION_AVERAGE_SCORE', $evaluation['ergebnis']);
Despues editamos la plantilla del estilo (viewtopic_body.html) y añadimos la nueva label para que muestre la nota media:

Código: Seleccionar todo

<!-- IF EVALUATION_AVERAGE_SCORE --><b>{EVALUATION_AVERAGE_SCORE}</b>/10<!-- ENDIF -->
Saludos! :cerveza: