Hello all,
i have a page that pulls api data from a remote server and to do this i am using a foreach() meathod what i need to know is how can i tell it to only pull the data that is >= 1?
so i guess the easiest way to explain it is, i want to set the vars for all available achievements but only display the ones with a value of 1 or more with a full color image and the ones with a value of 0 with a faded version of the same image… (the below vars are not all of them…)
the function:
[php]public function process_wowsachievs($wws_id)
{
$this->template->assign_vars(array(
‘S_WWS_HAS_PROFILE’ => true,
‘WWS_ID’ => $wws_id,
));
$ch = curl_init();
// Achievements
$apiuri = 'https://api.worldofwarships.com/wows/account/achievements/?application_id=a3a64dfac090e84c33c25d816e4d2ccd&account_id='.$wws_id.'&language=en';
curl_setopt($ch, CURLOPT_URL, $apiuri);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$wowsachievs = json_decode(curl_exec($ch), true);
curl_close($ch);
foreach ($wowsachievs['data'] AS $key => $value) {
$this->template->assign_block_vars(wowsachievs, array(
'WWSA_DOUBLE_KILL' => $value['battle']['DOUBLE_KILL'],
'WWSA_LIQUIDATOR' => $value['battle']['LIQUIDATOR'],
'WWSA_WARRIOR' => $value['battle']['WARRIOR'],
'WWSA_DETONATED' => $value['battle']['DETONATED'],
'WWSA_WITHERING' => $value['battle']['WITHERING'],
'WWSA_ARSONIST' => $value['battle']['ARSONIST'],
'WWSA_CBT_PARTICIPANT' => $value['battle']['CBT_PARTICIPANT'],
'WWSA_RAWDATA' => print_r ($value, true),
));
}
}[/php]
the display code:
[php]
Achievements:
x{wowsachievs.WWSA_DOUBLE_KILL} Double Strike x{wowsachievs.WWSA_LIQUIDATOR} Liquidator x{wowsachievs.WWSA_WARRIOR} Kraken Unleashed! x{wowsachievs.WWSA_DETONATED} Detonation x{wowsachievs.WWSA_WITHERING} Witherer x{wowsachievs.WWSA_CBT_PARTICIPANT} CBT Veteran x{wowsachievs.WWSA_ARSONIST} Arsonist
the actual data being pulled from the api call:
[code]Array
(
[battle] => Array
(
[RETRIBUTION] => 81
[FIGHTER] => 1
[BD2016_RUN_FOREST] => 1
[NY17_TO_THE_BOTTOM] => 1
[MILLIONAIR] => 1
[CAMPAIGN_NY17B_COMPLETED] => 1
[MERCENARY] => 1
[MESSENGER] => 1
[UNSINKABLE] => 10
[SCIENCE_OF_WINNING_ARSONIST] => 1
[NY17_AIMING] => 1
[SCIENCE_OF_WINNING_TACTICIAN] => 1
[MESSENGER_L] => 1
[BATTLE_HERO] => 1
[BD2016_WRONG_SOW] => 1
[DOUBLE_KILL] => 11
[CAMPAIGN1_COMPLETED] => 1
[BD2016_MANNERS] => 1
[NY17_DRESS_THE_TREE] => 1
[MAIN_CALIBER] => 22
[INSTANT_KILL] => 224
[NY17_500_LEAGUES] => 1
[JUNIOR_PLANNER] => 1
[NY17_WIN_ALL] => 1
[ENGINEER] => 1
[SCIENCE_OF_WINNING_HARD_EDGED] => 1
[ATBA_CALIBER] => 5
[BD2016_SNATCH] => 1
[MERCENARY_L] => 1
[BD2016_PARTY_ANIMAL] => 1
[HALLOWEEN_2016] => 1
[SCIENCE_OF_WINNING_TO_THE_BOTTOM] => 1
[VETERAN] => 1
[NO_DAY_WITHOUT_ADVENTURE] => 1
[NEVER_ENOUGH_MONEY] => 1
[NY17_BREAK_THE_BANK] => 1
[DREADNOUGHT] => 18
[CAPITAL] => 1
[BD2016_FESTIV_SOUP] => 1
[SCIENCE_OF_WINNING_BOMBARDIER] => 1
[CLEAR_SKY] => 63
[ARSONIST] => 8
[WARRIOR] => 3
[WORKAHOLIC] => 1
[FIRST_BLOOD] => 181
[DETONATED] => 40
[SUPPORT] => 11
[NY17_SAFECRACKER] => 1
[WITHERING] => 1
[BD2016_FIRESHOW] => 1
[NO_DAY_WITHOUT_ADVENTURE_L] => 1
[NY17_WIN_AT_LEAST_ONE] => 1
[FIREPROOF] => 9
[BD2016_PARTY_CHECK_IN] => 1
[CAMPAIGN_NY17B_COMPLETED_EXCELLENT] => 1
[CBT_PARTICIPANT] => 1
[AMAUTEUR] => 1
[LIQUIDATOR] => 4
[SCIENCE_OF_WINNING_LUCKY] => 1
)
[progress] => Array
(
[MERCENARY_L] => 0
[WORKAHOLIC] => 0
[FIGHTER] => 0
[NO_DAY_WITHOUT_ADVENTURE] => 0
[BATTLE_HERO] => 0
[NEVER_ENOUGH_MONEY] => 0
[NO_DAY_WITHOUT_ADVENTURE_L] => 0
[MERCENARY] => 0
[JUNIOR_PLANNER] => 0
[CAPITAL] => 0
[MESSENGER] => 0
[SCIENCE_OF_WINNING_BOMBARDIER] => 0
[MESSENGER_L] => 0
[AMAUTEUR] => 0
[VETERAN] => 0
[MILLIONAIR] => 0
[ENGINEER] => 0
)
)[/code]
notice there are some that just have an “x” next to them. I want the image to show if the value is 0 just not the x as the image will be a different version (faded out)
like this: