Искать  
 
   
 
Функция “Был сегодня”
Отправлено: 24 Июнь 2011 11:57 A.M.   [ Игнорировать ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Всем привет. делюсь решением: если пользователь заходил сегодня, то пишется: был сегодня в 11:30 например, если не был сегодня - пишется обычная дата типа 11.10.2011 (можно изменить по желанию.) Вот бы додумать еще чтобы выводилось ВЧЕРА тоже smile

Вот код:

{exp:query sql="SELECT last_activity, member_id FROM exp_members WHERE member_id = '1' "}
Был {if {last_activity format
="%j.%m.%Y"} == {current_time format="%j.%m.%Y"}}сегодня в {last_activity format="%G.%i"}{if:else}{last_visit format="%j.%m.%Y"}{/if}
{
/exp:query} 
 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 24 Июнь 2011 04:06 P.M.   [ Игнорировать ]   [ # 1 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

спасибо, полезная функция и решение достаточно простое.

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 24 Июнь 2011 04:36 P.M.   [ Игнорировать ]   [ # 2 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20
Stop-TussiN - 24 Июнь 2011 11:57 A.M.

...Вот бы додумать еще чтобы выводилось ВЧЕРА тоже

{exp:query sql="SELECT last_activity FROM exp_members WHERE member_id = 1"}
Был
<?php
$ct  
= '{current_time}';
$la  = '{last_activity}';
$dif =  $ct - $la;
?>
<?php 
if ($dif > 180 AND $dif < 3600): ?>
<?php 
echo round($dif / 60) .' минут тому назад'; ?>
<?php 
endif ?>
<?php 
if ($dif > 3600 AND $dif < (60 * 60 * 24)): ?>
<?php 
echo round($dif / (60 * 60)) .' часов тому назад'; ?>
<?php 
endif ?>
<?php 
if ($dif > 86400): ?>
<?php 
echo round($dif / (60 * 60 * 24 )) .' дней тому назад'; ?>
<?php 
endif ?>
<?php 
if ($dif < 180): ?>
<?php 
echo ' и есть :)'; ?>
<?php 
endif ?>
{
/exp:query} 
Профиль
 
 
Отправлено: 24 Июнь 2011 04:46 P.M.   [ Игнорировать ]   [ # 3 ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Спасибо, очень круто )
осталось разобраться как сделать чтобы 1 час писался ЧАС, а 5 писалось ЧАСОВ и т.д. smile

 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 16 Июль 2011 09:29 P.M.   [ Игнорировать ]   [ # 4 ]
Студент
Avatar
RankRank
Всего сообщений:  113
Зарегистрирован  2010-08-30
Stop-TussiN - 24 Июнь 2011 04:46 P.M.

Спасибо, очень круто )
осталось разобраться как сделать чтобы 1 час писался ЧАС, а 5 писалось ЧАСОВ и т.д. smile

function _word_cases($number, $titles) {
        $cases 
= array(2, 0, 1, 1, 1, 2);
        return 
$number . " " . $titles[($number % 100 > 4 && $number % 100 < 20) ? 2 : $cases[min($number % 10, 5)]];
    
} 

Юзать:

$this->_word_cases(round($dif / 60), array('минуту', 'минуты', 'минут')); 
Профиль