<?php

$new_achievements = array();
$all_achievements = $achievements->getAchievements() or array();
$achievement_completions = array();
$new_achievements = array();
if (!empty($all_achievements)) {
    foreach ($all_achievements as $achievement => $value) {
        $achievement_completions[] = $value['column'];
    }
    $achievement_completions = $achievements->getPlayerAchievementsCompletion($achievement_completions);
    $players_total = $achievement_completions['TOTAL_RECORDS'];
    foreach ($all_achievements as $achievement => $value) {
        $d = $players_total == 0 ? 0 : $achievement_completions[$value['column']] / $players_total;
        array_push($new_achievements, array('name' => $value['name'], 'desc' => $value['desc'], 'icon' => $value['icon'], 'tokens' => $value['tokens'], 'percent' => round($d * 100, 1) . "%", 'players_unlocked' => $achievement_completions[$value['column']]));
    }
    $new_achievements = ACLIB::ArrSort($new_achievements, 'players_unlocked');
}
$smarty->assign("all_achievements", $new_achievements);
    $total_achievements++;
    $completed_achievements[$column]['showbar'] = false;
    $completed_achievements[$column]['locked'] = '';
    if ($locked) {
        $completed_achievements[$column]['locked'] = "locked";
        if ($value['value']) {
            $completed_achievements[$column]['showbar'] = true;
            $completed_achievements[$column]['completed'] = $achievements_plr_status[$column]['progress'];
            $completed_achievements[$column]['max'] = $value['max'];
            $completed_achievements[$column]['percent'] = $value['max'] > 0 ? round($achievements_plr_status[$column]['progress'] / $value['max'] * 100, 1) : 0.0;
        }
    } else {
        $achievements_unlocked++;
    }
    $completed_achievements[$column]['name'] = $value['name'];
    $completed_achievements[$column]['desc'] = $value['desc'];
    $completed_achievements[$column]['tokens'] = $value['tokens'];
    $completed_achievements[$column]['icon'] = $value['icon'];
    $completed_achievements[$column]['date'] = $locked ? "0" : date($format, $achievements_plr_status[$column]['unlocked_date']);
}
$completed_achievements = ACLIB::ArrSort($completed_achievements, "date");
foreach ($completed_achievements as $achievement => $value) {
    if ($value['date'] == "0") {
        $completed_achievements[$achievement]['date'] = $Lang['achievement_locked'];
    }
}
$smarty->assignSingleVariable("category_name", $category_name);
$smarty->assignSingleVariable("total_achievements", $total_achievements);
$smarty->assignSingleVariable("achievements_unlocked", $achievements_unlocked);
$smarty->assignSingleVariable("completion", $total_achievements > 0 ? round($achievements_unlocked / $total_achievements * 100, 1) : 0.0);
$smarty->assignSingleVariable("completed_achievements", $completed_achievements);