function get_user_achievs(user_auth, all=false){
var token = $('#token').val();
var data_extend = "";
if(all){
$('#btn_show_achieves_all').hide();
$('#btn_show_achieves').show();
data_extend = "&all=y";
}else{
$('#btn_show_achieves_all').show();
$('#btn_show_achieves').hide();
}
$.ajax({
type: "POST",
url: "../ajax/actions.php",
data: "phpaction=1&get_user_achievs=1&token="+token+"&user_auth="+user_auth+data_extend,
success: function(html) {
$("#achievs").empty();
$("#achievs").append(html);
}
});
}
<p>
<a id="btn_show_achieves_all" onclick="get_user_achievs('<?echo $profile->steam_id ?>', true);" class="btn2">Показать все возможные ачивки</a>
<a id="btn_show_achieves" onclick="get_user_achievs('<?echo $profile->steam_id ?>');" class="btn2" style="display: none;">Показать только заработанные ачивки</a>
</p>
if(!empty($user_auth))
{
if($_POST['all'] === 'y'){
$STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` RIGHT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` AND `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs`.`unic_id`");
}else{
$STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` LEFT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` WHERE `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs_stats`.`ach_id`");
}
$STH->setFetchMode(PDO::FETCH_OBJ);
$STH->execute(array( ':user_auth' => $user_auth ));
while($row = $STH->fetch()) {
$j++;
$status = '';
$tmpDate = $row->collect_date;
if($tmpDate == '0000-00-00 00:00:00') {
$tmpDate = ''.$row->curr_value.' из '.$row->value.'';
$status = 'info';
} else if($row->ach_collect == 1) {
$status = 'success';
}
$tpl->load_template('elements/achievs.tpl');
$tpl->set("{ach_id}", $row->unic_id);
$tpl->set("{rus_name}", $row->rus_name);
$tpl->set("{value}", $row->value);
$tpl->set("{ach_img}", $row->ach_img);
$tpl->set("{description}", $row->description);
$tpl->set("{curr_value}", $row->curr_value);
$tpl->set("{ach_collect}", $row->ach_collect);
$tpl->set("{collect_date}", $tmpDate);
$tpl->set("{status}", $status);
$tpl->compile( 'achievs' );
$tpl->clear();
}
}
А как смотреть не ОТКРЫТЫЕ?Не знаю в правильный ли раздел пишу, но:
![]()
Сделали отображение всех ачивок в профиле по кнопке. Если кому нужно, забирайте.
/ajax/ajax-user,js (заменить функцию)
Код:function get_user_achievs(user_auth, all=false){ var token = $('#token').val(); var data_extend = ""; if(all){ $('#btn_show_achieves_all').hide(); $('#btn_show_achieves').show(); data_extend = "&all=y"; }else{ $('#btn_show_achieves_all').show(); $('#btn_show_achieves').hide(); } $.ajax({ type: "POST", url: "../ajax/actions.php", data: "phpaction=1&get_user_achievs=1&token="+token+"&user_auth="+user_auth+data_extend, success: function(html) { $("#achievs").empty(); $("#achievs").append(html); } }); }
/templates/maincs/tpl/home/profile.tpl (добавить кнопки над выводом таблицы)
Код:<p> <a id="btn_show_achieves_all" onclick="get_user_achievs('<?echo $profile->steam_id ?>', true);" class="btn2">Показать все возможные ачивки</a> <a id="btn_show_achieves" onclick="get_user_achievs('<?echo $profile->steam_id ?>');" class="btn2" style="display: none;">Показать только заработанные ачивки</a> </p>
/ajax/actions.php (заменить блок кода в if'е isset($_POST['get_user_achievs']))
Код:if(!empty($user_auth)) { if($_POST['all'] === 'y'){ $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` RIGHT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` AND `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs`.`unic_id`"); }else{ $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` LEFT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` WHERE `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs_stats`.`ach_id`"); } $STH->setFetchMode(PDO::FETCH_OBJ); $STH->execute(array( ':user_auth' => $user_auth )); while($row = $STH->fetch()) { $j++; $status = ''; $tmpDate = $row->collect_date; if($tmpDate == '0000-00-00 00:00:00') { $tmpDate = ''.$row->curr_value.' из '.$row->value.''; $status = 'info'; } else if($row->ach_collect == 1) { $status = 'success'; } $tpl->load_template('elements/achievs.tpl'); $tpl->set("{ach_id}", $row->unic_id); $tpl->set("{rus_name}", $row->rus_name); $tpl->set("{value}", $row->value); $tpl->set("{ach_img}", $row->ach_img); $tpl->set("{description}", $row->description); $tpl->set("{curr_value}", $row->curr_value); $tpl->set("{ach_collect}", $row->ach_collect); $tpl->set("{collect_date}", $tmpDate); $tpl->set("{status}", $status); $tpl->compile( 'achievs' ); $tpl->clear(); } }
Там кнопка переключаетсяА как смотреть не ОТКРЫТЫЕ?
Попробовал сделать, на стандарт шаблоне не работает, достижения не скрываются, кнопка не активная. Есть кто за денюшку сделает? Пишите в лс.Не знаю в правильный ли раздел пишу, но:
![]()
Сделали отображение всех ачивок в профиле по кнопке. Если кому нужно, забирайте.
/ajax/ajax-user,js (заменить функцию)
Код:function get_user_achievs(user_auth, all=false){ var token = $('#token').val(); var data_extend = ""; if(all){ $('#btn_show_achieves_all').hide(); $('#btn_show_achieves').show(); data_extend = "&all=y"; }else{ $('#btn_show_achieves_all').show(); $('#btn_show_achieves').hide(); } $.ajax({ type: "POST", url: "../ajax/actions.php", data: "phpaction=1&get_user_achievs=1&token="+token+"&user_auth="+user_auth+data_extend, success: function(html) { $("#achievs").empty(); $("#achievs").append(html); } }); }
/templates/maincs/tpl/home/profile.tpl (добавить кнопки над выводом таблицы)
Код:<p> <a id="btn_show_achieves_all" onclick="get_user_achievs('<?echo $profile->steam_id ?>', true);" class="btn2">Показать все возможные ачивки</a> <a id="btn_show_achieves" onclick="get_user_achievs('<?echo $profile->steam_id ?>');" class="btn2" style="display: none;">Показать только заработанные ачивки</a> </p>
/ajax/actions.php (заменить блок кода в if'е isset($_POST['get_user_achievs']))
Код:if(!empty($user_auth)) { if($_POST['all'] === 'y'){ $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` RIGHT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` AND `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs`.`unic_id`"); }else{ $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` LEFT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` WHERE `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs_stats`.`ach_id`"); } $STH->setFetchMode(PDO::FETCH_OBJ); $STH->execute(array( ':user_auth' => $user_auth )); while($row = $STH->fetch()) { $j++; $status = ''; $tmpDate = $row->collect_date; if($tmpDate == '0000-00-00 00:00:00') { $tmpDate = ''.$row->curr_value.' из '.$row->value.''; $status = 'info'; } else if($row->ach_collect == 1) { $status = 'success'; } $tpl->load_template('elements/achievs.tpl'); $tpl->set("{ach_id}", $row->unic_id); $tpl->set("{rus_name}", $row->rus_name); $tpl->set("{value}", $row->value); $tpl->set("{ach_img}", $row->ach_img); $tpl->set("{description}", $row->description); $tpl->set("{curr_value}", $row->curr_value); $tpl->set("{ach_collect}", $row->ach_collect); $tpl->set("{collect_date}", $tmpDate); $tpl->set("{status}", $status); $tpl->compile( 'achievs' ); $tpl->clear(); } }
Для этого имеется соответствующий раздел.Есть кто за денюшку сделает? Пишите в лс.
Не обязательно писать через echo в профиле выведено все с users по этому можно было {$profile->steam_id}<a id="btn_show_achieves_all" onclick="get_user_achievs('<?echo $profile->steam_id ?>', true);" class="btn2">Показать все возможные ачивки</a>
<a id="btn_show_achieves" onclick="get_user_achievs('<?echo $profile->steam_id ?>');" class="btn2" style="display: none;">Показать только заработанные ачивки</a>