Facebook  Twitter 

SMFHacks.com

+-

SMFHacks.com

+- User Information

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?

+- Forum Stats

Members
Total Members: 4255
Latest: andreios
New This Month: 3
New This Week: 1
New Today: 0
Stats
Total Posts: 43259
Total Topics: 7518
Most Online Today: 297
Most Online Ever: 2482
(April 09, 2011, 07:02:45 pm)
Users Online
Members: 0
Guests: 277
Total: 277

Author Topic: How could I neatly combine these similar codes using foreach  (Read 7304 times)

0 Members and 1 Guest are viewing this topic.

Offline shuban

  • Hero Member
  • *****
  • Posts: 665
    • View Profile
    • Biology Forums
How could I neatly combine these similar codes using foreach
« on: August 06, 2016, 01:53:33 am »
Notice how I have named the $badgeAction according to what they do. How could I neatly just have one that loops through them?

Code: [Select]
// Friends

$badgeAction = 'friend1';
if (count($memberContext[$memberID]['buddies']) >= 1 && !in_array($badgeAction,$currentBadges))
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[]  = $badgeAction;
}

}

$badgeAction = 'friend5';
if (count($memberContext[$memberID]['buddies']) >= 5 && !in_array($badgeAction,$currentBadges))
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[]  = $badgeAction;
}

}

$badgeAction = 'friend10';
if (count($memberContext[$memberID]['buddies']) >= 10 && !in_array($badgeAction,$currentBadges))
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[]  = $badgeAction;
}

}

$badgeAction = 'friend15';
if (count($memberContext[$memberID]['buddies']) >= 15 && !in_array($badgeAction,$currentBadges))
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[]  = $badgeAction;
}

}

$badgeAction = 'friend30';
if (count($memberContext[$memberID]['buddies']) >= 30 && !in_array($badgeAction,$currentBadges))
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[]  = $badgeAction;
}

}

$badgeAction = 'friend50';
if (count($memberContext[$memberID]['buddies']) >= 50 && !in_array($badgeAction,$currentBadges))
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[]  = $badgeAction;
}

}

$badgeAction = 'friend100';
if (count($memberContext[$memberID]['buddies']) >= 100 && !in_array($badgeAction,$currentBadges))
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[]  = $badgeAction;
}

}

Offline SMFHacks

  • Administrator
  • Hero Member
  • *****
  • Posts: 16436
    • View Profile
Re: How could I neatly combine these similar codes using foreach
« Reply #1 on: August 06, 2016, 12:05:22 pm »
Try this
Code: [Select]
$friendBadges = array(1,5,10,15,30,50,100);

foreach($friendBadges as $friendNumber)
{

$badgeAction = 'friend' . $friendNumber;
if (count($memberContext[$memberID]['buddies']) >= $friendNumber && !in_array($badgeAction,$currentBadges))
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[]  = $badgeAction;
}

}
}
Get your Forum Ranked! at https://www.forumrankings.net - find out how your forum compares with others!

Like What I do? Support me at https://www.patreon.com/vbgamer45/
Agree Agree x 1 View List

Offline shuban

  • Hero Member
  • *****
  • Posts: 665
    • View Profile
    • Biology Forums
Re: How could I neatly combine these similar codes using foreach
« Reply #2 on: August 06, 2016, 12:06:14 pm »
Perfect

Offline shuban

  • Hero Member
  • *****
  • Posts: 665
    • View Profile
    • Biology Forums
Re: How could I neatly combine these similar codes using foreach
« Reply #3 on: August 06, 2016, 02:22:36 pm »
By the way, do you think this is a better way to organize the badgeawards.php source file?

Offline SMFHacks

  • Administrator
  • Hero Member
  • *****
  • Posts: 16436
    • View Profile
Re: How could I neatly combine these similar codes using foreach
« Reply #4 on: August 06, 2016, 02:28:35 pm »
yes it would be in some cases.
Get your Forum Ranked! at https://www.forumrankings.net - find out how your forum compares with others!

Like What I do? Support me at https://www.patreon.com/vbgamer45/

 

Related Topics

  Subject / Started by Replies Last post
11 Replies
10179 Views
Last post March 04, 2010, 07:33:45 pm
by majorwood
6 Replies
5045 Views
Last post February 27, 2011, 11:17:18 am
by simibill
11 Replies
7573 Views
Last post July 04, 2014, 12:28:16 am
by SMFHacks
4 Replies
3477 Views
Last post March 06, 2016, 12:41:21 pm
by SMFHacks
1 Replies
5199 Views
Last post February 27, 2016, 07:51:55 am
by SMFHacks

+- Recent Topics

No thumbnails on new uploads by SMFHacks
March 27, 2024, 02:10:41 pm

Display the Contact Page for guests by SMFHacks
March 27, 2024, 10:55:43 am

is it possible to add support for odysee.com by fvlog19
March 21, 2024, 08:47:51 am

Request for admin notification by davejo
March 10, 2024, 01:31:59 am

I need help with torrent upload by Ineedsmfhelp
March 09, 2024, 10:01:13 pm

an idea for new mod (( content type with different display )) by SMFHacks
February 27, 2024, 01:36:27 pm

[Mod] RSS Feed Poster by SMFHacks
February 27, 2024, 11:57:18 am

find duplicate pictures by fvlog19
February 14, 2024, 02:22:40 pm

Error uploading video. by SMFHacks
February 08, 2024, 02:04:16 pm

Gallery icon as last added image by fvlog19
February 01, 2024, 01:04:56 pm

Powered by EzPortal