Simple Portal

Support => International Support => Spanish => Topic started by: RaulVK on July 31, 2011, 11:18:42 PM

Title: Avatar en bloque temas recientes
Post by: RaulVK on July 31, 2011, 11:18:42 PM
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'],' &nbsp;|&nbsp;', $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
Title: Re: Avatar en bloque temas recientes
Post by: 130860 on August 01, 2011, 11:45:43 AM
ese bloque depende de el archivo SSI.php, si queires que aparezcan los avatares, tendr
Title: Re: Avatar en bloque temas recientes
Post by: RaulVK on August 01, 2011, 03:35:24 PM
Adjuntado!  ;)
Title: Re: Avatar en bloque temas recientes
Post by: 130860 on August 01, 2011, 09:59:50 PM
OK, con el archivo que adjunto ya puedes usar $item['poster']['avatar']  en tu archivo PortalBlocks.php para obtener el avatar del usuario.
Title: Re: Avatar en bloque temas recientes
Post by: RaulVK on August 02, 2011, 06:45:54 AM
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
Title: Re: Avatar en bloque temas recientes
Post by: 130860 on August 02, 2011, 12:26:51 PM
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
Title: Re: Avatar en bloque temas recientes
Post by: RaulVK on August 02, 2011, 02:06:05 PM
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
Title: Re: Avatar en bloque temas recientes
Post by: 130860 on August 05, 2011, 12:14:39 PM
OK, un typo en el archivo SSI.php  busca esto:

            'avatar' => $usuario['avatar']['image'];

y reempalzalo con esto:

            'avatar' => $usuario['avatar']['image'],
Title: Re: Avatar en bloque temas recientes
Post by: RaulVK on August 06, 2011, 04:22:38 AM
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
Title: Re: Avatar en bloque temas recientes
Post by: 130860 on August 08, 2011, 10:17:34 AM
vas a tener que hacerlo desde el SSI.php ya que el bloque est
Title: Re: Avatar en bloque temas recientes
Post by: RaulVK on August 08, 2011, 12:02:16 PM
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.
Title: Re: Avatar en bloque temas recientes
Post by: 130860 on August 08, 2011, 03:04:18 PM
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
Title: Re: Avatar en bloque temas recientes
Post by: RaulVK on August 08, 2011, 08:14:59 PM
Muchas gracias, ahora si a quedado todo genial. ;)
EhPortal 1.39.8 © 2024, WebDev