Main Menu
collapse

Simple Portal Archived Forum

This is an Archive Forum.

The content in this forum may be out-of-date or have been superseded by newer information, and links in forum pages to other sites may not work.
This forum contains archives for future reference.

Visit our thread at Simple Machines Forum for current support.

SMF 2.1 users: EhPortal is a ported version of Simple Portal specifically designed for the SMF 2.1 branch.
Please visit web-develop.ca to download EhPortal and for its support.

User Info

Welcome Guest.
Please log in.

Who's Online

  • Dot Guests: 1205
  • Dot Hidden: 0
  • Dot Users: 0

There aren't any users online.

Recent Posts

Adding Forums Button to Nav bar by jirapon
[August 01, 2019, 09:07:12 AM]


Re: Board Icons by ♦ Ninja ZX-10RR ♦
[July 30, 2019, 04:03:41 PM]


MOVED: Czech translation???? by ♦ Ninja ZX-10RR ♦
[July 30, 2019, 03:04:51 PM]


Board Icons by jirapon
[July 30, 2019, 07:28:44 AM]


Re: Thankyou Simpleportal, by ♦ Ninja ZX-10RR ♦
[July 29, 2019, 09:41:29 AM]


Thanks for having an interest with our portal. If you have any requests for features, have a look at the Feature Requests board.

Avatar en bloque temas recientes

Started by RaulVK, July 31, 2011, 11:18:42 PM

Previous topic - Next topic

0 Members and 5 Guests are viewing this topic.

RaulVK

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

130860

ese bloque depende de el archivo SSI.php, si queires que aparezcan los avatares, tendr

RaulVK

Adjuntado!  ;)

130860

OK, con el archivo que adjunto ya puedes usar $item['poster']['avatar']  en tu archivo PortalBlocks.php para obtener el avatar del usuario.

RaulVK

#4
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

130860

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

RaulVK

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

130860

OK, un typo en el archivo SSI.php  busca esto:

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

y reempalzalo con esto:

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

RaulVK

#8
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

130860

vas a tener que hacerlo desde el SSI.php ya que el bloque est

RaulVK

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.

130860

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

RaulVK

Muchas gracias, ahora si a quedado todo genial. ;)