max_nakamura
@max_nakamura
Php разработчик

Отображать вокруг аватара пользователя зеленную границу когда он онлайн?

Добрый день ! Вопрос такой: Я сейчас разрабатываю небольшую соц сеть с помощью Wordpress и BuddyPress и есть проблема я бы хотел выводить статус пользователя онлайн горит зеленым/офлайн горит красным в виде границы вокруг аватарки пользователя я примерно даже не предсталвяю как это реализовать! Как это передать кто работал с этими двумя компонентами подскажите!

Вот сама функция проверки
/**
 * Output the "active [x days ago]" string for a user.
 *
 * @see bp_get_last_activity() for a description of parameters.
 *
 * @param int $user_id See {@link bp_get_last_activity()}.
 */
function bp_last_activity( $user_id = 0 ) {

	/**
	 * Filters the 'active [x days ago]' string for a user.
	 *
	 * @since 1.0.0
	 *
	 * @param string $value Formatted 'active [x days ago]' string.
	 */
	echo apply_filters( 'bp_last_activity', bp_get_last_activity( $user_id ) );
}
	/**
	 * Get the "active [x days ago]" string for a user.
	 *
	 * @param int $user_id ID of the user. Default: displayed user ID.
	 * @return string
	 */
	function bp_get_last_activity( $user_id = 0 ) {
		if ( empty( $user_id ) )
			$user_id = bp_displayed_user_id();

		$last_activity = bp_core_get_last_activity( bp_get_user_last_activity( $user_id ), __('active %s', 'online') );
		/**
		 * Filters the 'active [x days ago]' string for a user.
		 *
		 * @since 1.5.0
		 *
		 * @param string $value Formatted 'active [x days ago]' string.
		 */
		return apply_filters( 'bp_get_last_activity', $last_activity);
	}


Вот способ вывода

<span class="activity"><?php bp_last_activity( bp_displayed_user_id() ); ?></span>


Буду очень признателен!

13862076394946cd8244abc517d04d7f.png
  • Вопрос задан
  • 346 просмотров
Решения вопроса 1
max_nakamura
@max_nakamura Автор вопроса
Php разработчик
Уже решили данный вопрос написанием простой функции и выводом стиля на страницу! Все отлично работает!

Вот кому-нибудь может пригодиться решение:
Допустим аватар имеет id = «item-header-avatar», тогда можно например так:

<?php
/**
* Определим  онлайн пользователь или нет
*/
function check_is_user_online($user_id) {
 if (bp_has_members("type=online&include=" . $user_id))
 return true;
 else
 return false;
 }
/**
*Добавим стиль если просматриваемый пользователь онлайн
*/
function onwp_header_avatar() {
 $is_online = check_is_user_online(bp_displayed_user_id());
 if (!empty($is_online)) {
 echo '<style>
 #item-header-avatar {
 border: 2px solid green;
 }
 </style>';
 }
 }
add_action('wp_footer', 'onwp_header_avatar');
  
?>

код добавить в functions.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
в css:
.activity {
border: 2px solid green; // задаете нужную ширину (2px), тип (solid, dotted, dashed и тп) и цвет (green)
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы