SMFHacks.com

Badge Awards => Support => Topic started by: Dylert on September 03, 2012, 04:55:59 pm

Title: Badge block
Post by: Dylert on September 03, 2012, 04:55:59 pm
Hi! I'm using TinyPortal and would love to have a side block where the latest badges given are listed. Just like the list in the info center. Is that hard to make?
Title: Re: Badge block
Post by: SMFHacks on September 03, 2012, 10:12:56 pm
Some example code
Code: [Select]
//Start Badge Awards

global $modSettings, $boardurl, $smcFunc;
if ($modSettings['badgeawards_showboardindex'] == true && !empty($modSettings['badgeawards_enable']))
{
if (empty($modSettings['badgeawards_boardnumdisplay']))
$modSettings['badgeawards_boardnumdisplay'] = 10;

if (empty($modSettings['badgeawards_url']))
$modSettings['badgeawards_url'] = $boardurl . '/badges/';

$dbresult = $smcFunc['db_query']('', "SELECT
b.id_badge, b.title, b.image, b.enabled,
l.ID_MEMBER, l.date, l.id_log, m.real_name 
FROM ({db_prefix}badgeawards_badges as b, {db_prefix}badgeawards_badge_log as l)
LEFT JOIN {db_prefix}members as m ON (m.ID_MEMBER = l.ID_MEMBER)
WHERE l.id_badge = b.id_badge
ORDER BY l.id_log DESC
LIMIT " . $modSettings['badgeawards_boardnumdisplay']);

$context['badge_recentindex'] = array();
while($row = mysql_fetch_assoc($dbresult))
{
$context['badge_recentindex'][] = $row;

}
mysql_free_result($dbresult);
}


foreach ($context['badge_recentindex'] as $pic)
{


echo '<a href="' . $scripturl . '?action=badgeawards;sa=badges;u=' . $pic['ID_MEMBER'] . '">' . $pic['title'] . '</a> ' .   $txt['badges_to'], ' ', ($pic['real_name'] != '' ?  '<a href="' . $scripturl . '?action=profile;u=' . $pic['ID_MEMBER'] . '">' . $pic['real_name'] . '</a>' : '') . '
', timeformat($pic['date']), '<br />';


}

//END Badge Awards

Title: Re: Badge block
Post by: Dylert on September 04, 2012, 01:23:41 am
Just what i need! Thanks a lot!  :)
Title: Re: Badge block
Post by: Draffi on May 21, 2013, 01:18:58 pm
Is it possible, to show the Badge next (in front of) to the username inside this block-code?
Title: Re: Badge block
Post by: SMFHacks on May 24, 2013, 03:57:55 pm
You mean the badge icon/image itself?
Title: Re: Badge block
Post by: Draffi on May 24, 2013, 05:11:52 pm
Mhhh....regulary this is what i want:

(SMF 2.0.4 with SimplePortal 2.3.5)

A streaming Badge List inside a block.

Title: Re: Badge block
Post by: Draffi on June 19, 2013, 06:03:35 pm
Bumb....
Title: Re: Badge block
Post by: SMFHacks on June 19, 2013, 07:25:45 pm
A streaming block would take me a while to do but I could do recent badges in a block in a couple posts up is the recent badges code for SMF 2.0.x
Title: Re: Badge block
Post by: exit on May 07, 2018, 12:23:45 pm
Some example code
Code: [Select]
//Start Badge Awards

global $modSettings, $boardurl, $smcFunc;
if ($modSettings['badgeawards_showboardindex'] == true && !empty($modSettings['badgeawards_enable']))
{
if (empty($modSettings['badgeawards_boardnumdisplay']))
$modSettings['badgeawards_boardnumdisplay'] = 10;

if (empty($modSettings['badgeawards_url']))
$modSettings['badgeawards_url'] = $boardurl . '/badges/';

$dbresult = $smcFunc['db_query']('', "SELECT
b.id_badge, b.title, b.image, b.enabled,
l.ID_MEMBER, l.date, l.id_log, m.real_name 
FROM ({db_prefix}badgeawards_badges as b, {db_prefix}badgeawards_badge_log as l)
LEFT JOIN {db_prefix}members as m ON (m.ID_MEMBER = l.ID_MEMBER)
WHERE l.id_badge = b.id_badge
ORDER BY l.id_log DESC
LIMIT " . $modSettings['badgeawards_boardnumdisplay']);

$context['badge_recentindex'] = array();
while($row = mysql_fetch_assoc($dbresult))
{
$context['badge_recentindex'][] = $row;

}
mysql_free_result($dbresult);
}


foreach ($context['badge_recentindex'] as $pic)
{


echo '<a href="' . $scripturl . '?action=badgeawards;sa=badges;u=' . $pic['ID_MEMBER'] . '">' . $pic['title'] . '</a> ' .   $txt['badges_to'], ' ', ($pic['real_name'] != '' ?  '<a href="' . $scripturl . '?action=profile;u=' . $pic['ID_MEMBER'] . '">' . $pic['real_name'] . '</a>' : '') . '
', timeformat($pic['date']), '<br />';


}

//END Badge Awards


This is not working for me. Anything that needs to be updated?
Title: Re: Badge block
Post by: SMFHacks on May 07, 2018, 12:32:23 pm
Where are you putting that code?
It is checking to see if the boardindex is enabled to display the badges you can take out that check and see if it runs
Title: Re: Badge block
Post by: exit on May 07, 2018, 12:39:44 pm
Where are you putting that code?
It is checking to see if the boardindex is enabled to display the badges you can take out that check and see if it runs

Sorry, it's a simpleportal block.

I removed the boardindex if... still nothing

Code: [Select]
//Start Badge Awards

global $modSettings, $boardurl, $smcFunc;
if (!empty($modSettings['badgeawards_enable']))
{
if (empty($modSettings['badgeawards_boardnumdisplay']))
$modSettings['badgeawards_boardnumdisplay'] = 10;

if (empty($modSettings['badgeawards_url']))
$modSettings['badgeawards_url'] = $boardurl . '/badges/';

$dbresult = $smcFunc['db_query']('', "SELECT
b.id_badge, b.title, b.image, b.enabled,
l.ID_MEMBER, l.date, l.id_log, m.real_name 
FROM ({db_prefix}badgeawards_badges as b, {db_prefix}badgeawards_badge_log as l)
LEFT JOIN {db_prefix}members as m ON (m.ID_MEMBER = l.ID_MEMBER)
WHERE l.id_badge = b.id_badge
ORDER BY l.id_log DESC
LIMIT " . $modSettings['badgeawards_boardnumdisplay']);

$context['badge_recentindex'] = array();
while($row = mysql_fetch_assoc($dbresult))
{
$context['badge_recentindex'][] = $row;

}
mysql_free_result($dbresult);
}


foreach ($context['badge_recentindex'] as $pic)
{


echo '<a href="' . $scripturl . '?action=badgeawards;sa=badges;u=' . $pic['ID_MEMBER'] . '">' . $pic['title'] . '</a> ' .   $txt['badges_to'], ' ', ($pic['real_name'] != '' ?  '<a href="' . $scripturl . '?action=profile;u=' . $pic['ID_MEMBER'] . '">' . $pic['real_name'] . '</a>' : '') . '
', timeformat($pic['date']), '<br />';


}

//END Badge Awards
Title: Re: Badge block
Post by: SMFHacks on May 07, 2018, 12:46:56 pm
Updated code
Code: [Select]
<?php
require 'SSI.php';

//Start Badge Awards

global $modSettings$boardurl$smcFunc;
if (!empty($modSettings['badgeawards_enable']))
{
if (empty($modSettings['badgeawards_boardnumdisplay']))
$modSettings['badgeawards_boardnumdisplay'] = 10;

if (empty($modSettings['badgeawards_url']))
$modSettings['badgeawards_url'] = $boardurl '/badges/';

$dbresult $smcFunc['db_query'](''"SELECT
b.id_badge, b.title, b.image, b.enabled,
l.ID_MEMBER, l.date, l.id_log, m.real_name
FROM ({db_prefix}badgeawards_badges as b, {db_prefix}badgeawards_badge_log as l)
LEFT JOIN {db_prefix}members as m ON (m.ID_MEMBER = l.ID_MEMBER)
WHERE l.id_badge = b.id_badge
ORDER BY l.id_log DESC
LIMIT " 
$modSettings['badgeawards_boardnumdisplay']);

$context['badge_recentindex'] = array();
while($row $smcFunc['db_fetch_assoc']($dbresult))
{
$context['badge_recentindex'][] = $row;

}

}


foreach ($context['badge_recentindex'] as $pic)
{


echo '<a href="' $scripturl '?action=badgeawards;sa=badges;u=' $pic['ID_MEMBER'] . '">' $pic['title'] . '</a> ' .   $txt['badges_to'], ' ', ($pic['real_name'] != '' ?  '<a href="' $scripturl '?action=profile;u=' $pic['ID_MEMBER'] . '">' $pic['real_name'] . '</a>' '') . '
'
timeformat($pic['date']), '<br />';


}

//END Badge Awards

Title: Re: Badge block
Post by: exit on May 07, 2018, 01:08:01 pm
Updated code

It's missing the images
Title: Re: Badge block
Post by: SMFHacks on May 07, 2018, 01:11:12 pm
Images were not part of that code originally.