Объединяем в профиле пользователя Статус и Последний визит

1119
Здравствуйте, вот решил сделать небольшое улучшение, не факт что всем понравится, но все-таки выкладываю:

Объединяем "Статус" и "Последний визит" в профиле

для этого необходимо в файле components/users/frontend.php найти:
Код PHP:
$usr['status'] = ($usr['status'] == $usr['id'] ? '<span class="online">'.$_LANG['ONLINE'].'</span>' : '<span class="offline">'.$_LANG['OFFLINE'].'</span>');
и заменить на:
Код PHP:
$usr['status'] = ($usr['status'] == $usr['id'] ? '<span class="online">'.$_LANG['ONLINE'].'</span>' : '');
теперь в templates/_default_/components/com_users_profile.tpl находим:
Код PHP:
<div class="field">
<div class="title">{$LANG.STATUS}:</div>
<div class="value">{$usr.status}</div>
</div>						
<div class="field">
<div class="title">{$LANG.LAST_VISIT}:</div>
<div class="value">{$usr.flogdate}</div>
</div>
и заменяем на:
Код PHP:
<div class="field">
<div class="title">{if $usr.status}{$LANG.STATUS}:{/if}{if !$usr.status}{$LANG.LAST_VISIT}:{/if}</div>
<div class="value">{if $usr.flogdate}{$usr.flogdate}{/if}</div>
</div>
Теперь когда пользователь онлайн, то показывается: Статус: онлайн;
Ну а если пользователь оффлайн, то покажет: Последний визит: 1000000 часов назад
И все это занимает одну строчку, вместо двух!
Скриншот не выкладываю, и так должно быть понятно!
Новое поле: семейное положение (исходя от пола) | Определение возраста пользователя по дате рождения
Комментарии (14)
alex 17 апреля 2012 в 21:57 +4
Ставлю +
Пригодится. Хороший хак.
Олег 17 апреля 2012 в 22:47 +7
Хорошее дополнение
ещё можно добавить {if $usr.gender == 'f'}Была {else} Был {/if}{$usr.flogdate}
VopisUVD 18 апреля 2012 в 15:58 0
так, а как-обычно свой статус можно ставить?
Максим Шорин 18 апреля 2012 в 16:11 -2
Максим Шорин 18 апреля 2012 в 16:15 -1
͡﴾͡๏̯͡๏﴿ 18 апреля 2012 в 16:47 +1
Имеется ввиду "статус" нахождения пользователя на сайте-онлайн или оффлайн..
VopisUVD 18 апреля 2012 в 19:28 0
семена семеновна.... а я то думал... да давно в профиль не заглядывал...
͡﴾͡๏̯͡๏﴿ 18 апреля 2012 в 22:49 0
Как можно тоже самое переделать для друзей тех что в профиле выводятся?
Олег 19 апреля 2012 в 23:35 0
а в профиле друзья помоему и так выводятся если онлайн то онлайн если нет то время последнего визита
͡﴾͡๏̯͡๏﴿ 20 апреля 2012 в 01:14 +1
Изначально неправильно задал вопрос!Просто не хочу выводить последний визит-а сделать только онлайн!
УЖЕ ВОПРОС РЕШИЛ СРЕДСТВАМИ CSS!
CROSS ツ 19 мая 2012 в 05:43 +1
Можно добавить ещё, чтобы когда пользователь был онлайн, последний везит не отображался, а когда оффлайн отображался и статус и последний визит.

Добавить перед
Код PHP:
<div class="field">
<div class="title">{if $usr.status}{$LANG.STATUS}:{/if}{if !$usr.status}{$LANG.LAST_VISIT}:{/if}</div>
<div class="value">{if $usr.flogdate}{$usr.flogdate}{/if}</div>
</div>
это
Код PHP:
{if !$usr.status}
						<div class="field">
							<div class="title">{$LANG.STATUS}:</div>
							<div class="value"><span class="offline">{$LANG.OFFLINE}</span></div>
						</div>
						{/if}
результат
iLoveNY 19 мая 2012 в 11:20 0
А у меня вкладки после этого хака перестали работать
CROSS ツ 27 мая 2012 в 22:02 0
Какая версия движка? Этот хак никак не затрагивает вкладки!
Ещё какие-нибудь хаки применяли? возможен конфликт скриптов.
La Time 26 декабря 2014 в 20:36 0
Классный хак, спасибо!
Правда, пришлось сделать его немного по-другому, т.к. после установки хака статус "Онлайн" стал отображаться просто на белом фоне, а не на зелёном как раньше.
Поправил так:
Внёс правку в components/users/frontend.php, как было указано выше.
В файле com_users_profile.tpl заменил:
Код PHP:
  1.  
  2. <div class="field">
  3. <div class="title">{$LANG.STATUS}:</div>
  4. <div class="value">{$usr.status}</div>
  5. </div>
  6. <div class="field">
  7. <div class="title">{$LANG.LAST_VISIT}:</div>
  8. <div class="value">{$usr.flogdate}</div>
  9. </div>
  10.  
на:
Код PHP:
  1.  
  2. {if !$usr.status}
  3. <div class="field">
  4. <div class="title">{$LANG.STATUS}:</div>
  5. <div class="value"><span class="offline">{$LANG.OFFLINE}</span></div>
  6. </div>
  7. {else}
  8. <div class="field">
  9. <div class="title">{$LANG.STATUS}:</div>
  10. <div class="value"><span class="online">{$LANG.ONLINE}</span></div>
  11. </div>
  12. {/if}
  13. {if !$usr.status}
  14. <div class="field">
  15. <div class="title">{$LANG.LAST_VISIT}:</div>
  16. <div class="value">{$usr.flogdate}</div>
  17. </div>
  18. {/if}
  19.  
...и всё стало отображаться как положено.