Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

[Фича] Время последнего входа как у вк


Рекомендуемые сообщения

Вылаживаю одну из фич из личной сборки B) , данная фича делает вывод  время последнего входа в стиле ВК  "заходил 15 минут назад".

Время в таком формате выводит до того как прошел час после как у vii по стандарту "последний раз был
 сегодня в H:i".
 

1. Открываем Profile.php

 

2. И между

			//Страна и город
			$tpl->set('{country}', $user_country_city_name_exp[0]);
			$tpl->set('{country-id}', $row['user_country']);
			$tpl->set('{city}', $user_country_city_name_exp[1]);
			$tpl->set('{city-id}', $row['user_city']);

 и

if($row['user_city'] AND $row['user_country']){
				$tpl->set('[not-all-city]','');
				$tpl->set('[/not-all-city]','');
			} else 
				$tpl->set_block("'\\[not-all-city\\](.*?)\\[/not-all-city\\]'si","");
				

заменяем все на

			$f = $server_time-$row["user_last_visit"];
            $onlinemins = floor($f/60);

			if($row['user_sex'] == 1){
	          $lastminsex = 'заходил ';
            } else {
	          $lastminsex = 'заходила ';
            }
			
            $val_time = array("1", "21", "31", "41", "51");
            $val_time2 = array("2", "22", "32", "42", "52", "3", "23", "33", "43", "53", "4", "24", "34", "44", "54");
            if (in_array($min, $val_time2)) {
                $lastminde = 'у';
            }elseif(in_array($min, $val_time)){
	            $lastminde = 'ы';
            }
			
			//Если человек сидит с мобильнйо версии
			if($row_online['user_logged_mobile']) $mobile_icon = '<img src="{theme}/images/spacer.gif" class="mobile_online" />';
			else $mobile_icon = '';
	
			if($row_online['user_last_visit'] >= $online_time)
				$tpl->set('{online}', $lang['online'].$mobile_icon);
			else {
			  if($onlinemins >=60){
				if(date('Y-m-d', $row_online['user_last_visit']) == date('Y-m-d', $server_time))
					$dateTell = langdate('сегодня в H:i', $row_online['user_last_visit']);
				elseif(date('Y-m-d', $row_online['user_last_visit']) == date('Y-m-d', ($server_time-84600)))
					$dateTell = langdate('вчера в H:i', $row_online['user_last_visit']);
				else
					$dateTell = langdate('j F Y в H:i', $row_online['user_last_visit']);
				if($row['user_sex'] == 2)
					$tpl->set('{online}', 'последний раз была '.$dateTell.$mobile_icon);
				else
					$tpl->set('{online}', 'последний раз был '.$dateTell.$mobile_icon);
					
				}else{
			        $tpl->set('{online}', $lastminsex.$onlinemins.' минут'.$lastminde.' назад'.$mobile_icon);
			  }
			}

Если пишет :

  • 4 минуТ
  • 1минуТ и др

Попробуйте этот код

		$f = $server_time-$row["user_last_visit"];
            $onlinemins = floor($f/60);

			if($row['user_sex'] == 1){
	          $lastminsex = 'заходил ';
            } else {
	          $lastminsex = 'заходила ';
            }
			
			if($onlinemins == 1 or $onlinemins == 21 or $onlinemins == 31 or $onlinemins == 41 or $onlinemins == 51){
	          $lastminde = 'у';
            } elseif($onlinemins == 2 or $onlinemins == 22 or $onlinemins == 32 or $onlinemins == 42 or $onlinemins == 52 or $onlinemins == 3 or $onlinemins == 23 or $onlinemins == 33 or $onlinemins == 43 or $onlinemins == 53 or $onlinemins == 4 or $onlinemins == 24 or $onlinemins == 34 or $onlinemins == 44 or $onlinemins == 54) {
	          $lastminde = 'ы';
            }
			
			//Если человек сидит с мобильнйо версии
			if($row_online['user_logged_mobile']) $mobile_icon = '<img src="{theme}/images/spacer.gif" class="mobile_online" />';
			else $mobile_icon = '';
	
			if($row_online['user_last_visit'] >= $online_time)
				$tpl->set('{online}', $lang['online'].$mobile_icon);
			else {
			  if($onlinemins >=60){
				if(date('Y-m-d', $row_online['user_last_visit']) == date('Y-m-d', $server_time))
					$dateTell = langdate('сегодня в H:i', $row_online['user_last_visit']);
				elseif(date('Y-m-d', $row_online['user_last_visit']) == date('Y-m-d', ($server_time-84600)))
					$dateTell = langdate('вчера в H:i', $row_online['user_last_visit']);
				else
					$dateTell = langdate('j F Y в H:i', $row_online['user_last_visit']);
				if($row['user_sex'] == 2)
					$tpl->set('{online}', 'последний раз была '.$dateTell.$mobile_icon);
				else
					$tpl->set('{online}', 'последний раз был '.$dateTell.$mobile_icon);
					
				}else{
			        $tpl->set('{online}', $lastminsex.$onlinemins.' минут'.$lastminde.' назад'.$mobile_icon);
			  }
			}

Информация

Будут проблемы, что то не правильно выводит и др пишите в теме!

 

Все! С уважением viiprogrammer!

 Ставим + :)

 

Внимание!

 На бесплатных хостингах может не работать

Изменено пользователем viiprogrammer
  • Upvote 5
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...
  • 5 месяцев спустя...
×
×
  • Создать...