Hola tengo el siguiente bloque de temas recientes:
function sp_recent($parameters, $id, $return_parameters = false)
{
global $txt, $scripturl, $settings, $context, $color_profile;
$block_parameters = array(
'boards' => 'boards',
'limit' => 'int',
'type' => 'select',
'display' => 'select',
);
if ($return_parameters)
return $block_parameters;
$boards = !empty($parameters['boards']) ? explode('|', $parameters['boards']) : null;
$limit = !empty($parameters['limit']) ? (int) $parameters['limit'] : 5;
$type = 'ssi_recent' . (empty($parameters['type']) ? 'Posts' : 'Topics');
$display = empty($parameters['display']) ? 'compact' : 'full';
$items = $type($limit, null, $boards, 'array');
if (empty($items))
{
echo '
', $txt['error_sp_no_posts_found'];
return;
}
else
$items[count($items) - 1]['is_last'] = true;
$colorids = array();
foreach ($items as $item)
$colorids[] = $item['poster']['id'];
if (!empty($colorids) && sp_loadColors($colorids) !== false)
{
foreach ($items as $k => $p)
{
if (!empty($color_profile[$p['poster']['id']]['link']))
$items[$k]['poster']['link'] = $color_profile[$p['poster']['id']]['link'];
}
}
if ($display == 'compact')
{
echo '
<table class="sp_fullwidth">';
foreach ($items as $key => $item)
echo '
<tr>
<td style="width: 40px;">
</td>
<td>
<a href="', $item['href'], '">', $item['subject'], '</a> ', $item['new'] ? '' : ' <a href="' . $scripturl . '?topic=' . $item['topic'] . '.msg' . $item['new_from'] . ';topicseen#new" rel="nofollow"><img src="' . $settings['lang_images_url'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /></a>', '<br /> <span style="font-size: 0.8em;">', $txt['by'], ' ', $item['poster']['link'],' | ', $item['time'], '</span><br />', empty($item['is_last']) ? '<hr />' : '
</td>
</tr>';
echo '
</table>';
}
elseif ($display == 'full')
{
echo '
<table class="sp_fullwidth">';
foreach ($items as $item)
echo '
<tr>
<td class="sp_recent_icon sp_center">
', sp_embed_image(empty($parameters['type']) ? 'post' : 'topic'), '
</td>
<td class="sp_recent_subject">
<a href="', $item['href'], '">', $item['subject'], '</a>
', $item['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $item['topic'] . '.msg' . $item['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /></a>', '<br />[', $item['board']['link'], ']
</td>
<td class="sp_recent_info sp_right">
', $item['poster']['link'], '<br />', $item['time'], '
</td>
</tr>';
echo '
</table>';
}
}
Justo dentro de esta parte <td style="width: 40px;">
</td>
del modo compact, quiero a
ese bloque depende de el archivo SSI.php, si queires que aparezcan los avatares, tendr
Adjuntado! ;)
OK, con el archivo que adjunto ya puedes usar $item['poster']['avatar'] en tu archivo PortalBlocks.php para obtener el avatar del usuario.
MMMM... no me funciona.
En el SSI.php he cambiado el:
'avatar' => $usuario['avatar']['image'];
por
'avatar' => $usuario['avatar']['image'],
por que me daba error en el script.
Luego al Portalblocks, le a
antes de esto:
<td style="width: 40px;">
</td>
agrega esto:
if($context['user']['is_admin']){
echo '<pre>';print_r($item);echo '<pre>';
}
para que veas que contiene $item y que es lo que puedes usar, ahi deber
Lo he probado y sigue sin funcionar, no aparece el array avatar. Lo que me muestra el bloque es lo que hay por default:
Array
(
[id] => 2318
[board] => Array
(
[id] => 14
[name] => .....
[href] => .....
[link] => .....
)
[topic] => 658
[poster] => Array
(
[id] => 3
[name] => ......
[href] => .....
[link] => .....
)
[subject] => ......
[short_subject] => .......
[preview] => .......
[body] => .........
[time] => Hoy a las 17:44
[timestamp] => 1312299845
[href] => .......
[link] => Re:.....
[new] =>
[is_new] => 1
[new_from] => 2318
[is_last] => 1
)
El array del avatar deber
OK, un typo en el archivo SSI.php busca esto:
'avatar' => $usuario['avatar']['image'];
y reempalzalo con esto:
'avatar' => $usuario['avatar']['image'],
Ya funciona, fue fallo mio al explicarme en el post principal, estaba utilizando el bloque de mensajes recientes, no de temas recientes, lo siento y muchiiiisimas gracias por tu ayuda. :)
Ahora la pregunta es
vas a tener que hacerlo desde el SSI.php ya que el bloque est
Lo he probado y no detecta la url del avatar con el href. Va a haber que crear algo mas en el ssi.php y no se como hacerlo.
en esta parte de tu archivo SSI.php
'poster' => array(
'avatar' => $usuario['avatar']['image'];
'id' => $row['id_member'],
'name' => $row['poster_name'],
'href' => empty($row['id_member']) ? '' : $scripturl . '?action=profile;u=' . $row['id_member'],
'link' => empty($row['id_member']) ? $row['poster_name'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['poster_name'] . '</a>'
),
vas a agregar el href:
'poster' => array(
'avatar' => $usuario['avatar']['image'],
'avatar_href' => $usuario['avatar']['href'],
'id' => $row['id_member'],
'name' => $row['poster_name'],
'href' => empty($row['id_member']) ? '' : $scripturl . '?action=profile;u=' . $row['id_member'],
'link' => empty($row['id_member']) ? $row['poster_name'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['poster_name'] . '</a>'
),
y ahora ya puedes usar ',$item['poster']['avatar_href'],' en tu portalblocks.php
Muchas gracias, ahora si a quedado todo genial. ;)