SimplePortal
Customization => Blocks and Modifications => Block Requests => Topic started by: Kobar on March 16, 2011, 07:59:28 AM
-
Hi there,
I need a block for ''The last 5 Profile statuses updates'' :)
See mod: http://custom.simplemachines.org/mods/index.php?mod=2888
I hope someone could make me happy :)
-
I think/hope this will work perfectly:
global $smcFunc, $scripturl;
$limit = 5;
$request = $smcFunc['db_query']('', '
SELECT ls.id_status, ls.id_member, mem.real_name, ls.post_date, ls.post, COUNT(lsr.*) AS num_replies
FROM {db_prefix}log_statuses AS ls
LEFT JOIN {db_prefix}log_status_replies AS lsr ON (ls.id_status = lsr.id_status)
INNER JOIN {db_prefix}members AS mem ON (ls.id_member = mem.id_member)
ORDER BY {raw:sort}
LIMIT {int:limit}',
array(
'sort' => 'id_status DESC',
'limit' => $limit,
)
);
$statuses = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
{
$statuses[] = array(
'id' => $row['id_status'],
'id_member' => $row['id_member'],
'poster' => '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>',
'time' => timeformat($row['post_date']),
'post' => parse_bbc($row['post']),
'num_replies' => comma_format($row['num_replies']),
);
}
$smcFunc['db_free_result']($request);
if (empty($statuses))
return;
else
$statuses[count($statuses) - 1]['is_last'] = true;
foreach ($statuses as $status)
echo '
', sp_embed_image('star'), '', $status['post'], '<span class="smalltext">', $txt['by'], ': ', $status['poster'], ' | ', $txt['posts'], ': ', $status['num_replies'], '</span><br />[', $item['time'], ']', empty($item['is_last']) ? '<hr />' : '';
Create a new PHP block, and, copy code to its body. ;)
-
I think/hope this will work perfectly:
global $smcFunc, $scripturl;
$limit = 5;
$request = $smcFunc['db_query']('', '
SELECT ls.id_status, ls.id_member, mem.real_name, ls.post_date, ls.post, COUNT(lsr.*) AS num_replies
FROM {db_prefix}log_statuses AS ls
LEFT JOIN {db_prefix}log_status_replies AS lsr ON (ls.id_status = lsr.id_status)
INNER JOIN {db_prefix}members AS mem ON (ls.id_member = mem.id_member)
ORDER BY {raw:sort}
LIMIT {int:limit}',
array(
'sort' => 'id_status DESC',
'limit' => $limit,
)
);
$statuses = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
{
$statuses[] = array(
'id' => $row['id_status'],
'id_member' => $row['id_member'],
'poster' => '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>',
'time' => timeformat($row['post_date']),
'post' => parse_bbc($row['post']),
'num_replies' => comma_format($row['num_replies']),
);
}
$smcFunc['db_free_result']($request);
if (empty($statuses))
return;
else
$statuses[count($statuses) - 1]['is_last'] = true;
foreach ($statuses as $status)
echo '
', sp_embed_image('star'), '', $status['post'], '<span class="smalltext">', $txt['by'], ': ', $status['poster'], ' | ', $txt['posts'], ': ', $status['num_replies'], '</span><br />[', $item['time'], ']', empty($item['is_last']) ? '<hr />' : '';
Create a new PHP block, and, copy code to its body. ;)
Thanks but it's not good. :)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) AS num_replies
FROM smf_log_statuses AS ls
LEFT JOIN smf_log_statu' at line 1
Bestand: /var/www/vhosts/solar-xl.nl/httpdocs/forum/Sources/PortalBlocks.php(3351) : eval()'d code
Regel: 16
-
Something wrong with my database?
-
global $smcFunc, $scripturl, $txt;
$limit = 5;
$request = $smcFunc['db_query']('', '
SELECT ls.id_status, ls.id_member, mem.real_name, ls.post_date AS time, ls.post, ls.reply_count AS num_replies
FROM {db_prefix}log_statuses AS ls
INNER JOIN {db_prefix}members AS mem ON (ls.id_member = mem.id_member)
ORDER BY {raw:sort}
LIMIT {int:limit}',
array(
'sort' => 'id_status DESC',
'limit' => $limit,
)
);
$statuses = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
{
$statuses[] = array(
'id' => $row['id_status'],
'id_member' => $row['id_member'],
'poster' => '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>',
'time' => timeformat($row['time']),
'post' => parse_bbc($row['post']),
'num_replies' => comma_format($row['num_replies']),
);
}
$smcFunc['db_free_result']($request);
if (empty($statuses))
return;
else
$statuses[count($statuses) - 1]['is_last'] = true;
foreach ($statuses as $status)
echo
sp_embed_image('star'), ' <i>', $status['post'], '</i> <span class="smalltext">', $txt['by'], ': ', $status['poster'], ' | ', $txt['posts'], ': ', $status['num_replies'], '</span><br />[', $status['time'], ']', empty($status['is_last']) ? '<hr />' : '<br />';
-
It works thanks! :)
is it possible to customize it a bit like this:
(http://www.decashare.com/images/l68DaATGV-Untitled-6.jpg)
Also comptable with the member color link? :)
-
I think I'm in my good day. ;P
global $smcFunc, $modSettings, $scripturl, $txt, $color_profile;
$limit = 5;
$txt['comments'] = 'Comments';
$request = $smcFunc['db_query']('', '
SELECT ls.id_status, ls.id_member, mem.real_name, mem.avatar,
a.id_attach, a.attachment_type, a.filename,
ls.post_date AS time, ls.post, ls.reply_count AS num_replies
FROM {db_prefix}log_statuses AS ls
INNER JOIN {db_prefix}members AS mem ON (ls.id_member = mem.id_member)
LEFT JOIN {db_prefix}attachments AS a ON (a.id_member = mem.id_member)
ORDER BY {raw:sort}
LIMIT {int:limit}',
array(
'sort' => 'id_status DESC',
'limit' => $limit,
)
);
$statuses = array();
$colorids = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
{
if (!empty($row['id_member']))
$colorids[$row['id_member']] = $row['id_member'];
$statuses[] = array(
'id' => $row['id_status'],
'id_member' => $row['id_member'],
'member' => array(
'id' => $row['id_member'],
'name' => $row['real_name'],
'href' => $scripturl . '?action=profile;u=' . $row['id_member'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>',
'avatar' => array(
'name' => $row['avatar'],
'image' => $row['avatar'] == '' ? ($row['id_attach'] > 0 ? '<img src="' . (empty($row['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $row['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) . '" alt="" class="avatar" border="0" />' : '') : (stristr($row['avatar'], 'http://') ? '<img src="' . $row['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" class="avatar" border="0" />' : '<img src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($row['avatar']) . '" alt="" class="avatar" border="0" />'),
'href' => $row['avatar'] == '' ? ($row['id_attach'] > 0 ? (empty($row['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $row['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) : '') : (stristr($row['avatar'], 'http://') ? $row['avatar'] : $modSettings['avatar_url'] . '/' . $row['avatar']),
'url' => $row['avatar'] == '' ? '' : (stristr($row['avatar'], 'http://') ? $row['avatar'] : $modSettings['avatar_url'] . '/' . $row['avatar'])
),
),
'time' => timeformat($row['time']),
'post' => parse_bbc($row['post']),
'num_replies' => comma_format($row['num_replies']),
);
}
$smcFunc['db_free_result']($request);
if (empty($statuses))
return;
else
$statuses[count($statuses) - 1]['is_last'] = true;
if (!empty($colorids) && sp_loadColors($colorids) !== false)
foreach ($statuses as $k => $status)
if (!empty($color_profile[$status['member']['id']]['link']))
$statuses[$k]['member']['link'] = $color_profile[$status['member']['id']]['link'];
echo '
<table class="sp_fullwidth">';
foreach ($statuses as $status)
echo '
<tr>
<td class="sp_top_poster sp_center">', !empty($status['member']['avatar']['href']) ? '
<img src="' . $status['member']['avatar']['href'] . '" alt="' . $status['member']['name'] . '" width="40" />' : '', '
</td>
<td>
', $status['post'], '<br />
', $txt['by'], ': ', $status['member']['link'], '<br />
', $txt['comments'], ': ', $status['num_replies'], '<br />
', $status['time'], (empty($status['is_last']) ? '<hr />' : ''), '
</td>
</tr>';
echo '
</table>';
-
You are the best! :D
Thank u so much!