Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Вывести статус пользователя в произвольном месте
13ответ(ов) в теме
garry
не в сети 16 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2925
1
18:13

Здравствуйте!
Не подскажите, есть ли возможность вывода статуса пользователя, только значка онлайн/офлайн?
Я все пытаюсь улучшить связку плагинов WP-Recall и Asgaros Forum, а на этом моменте туплю. Хочу по максимуму подготовить все и когда появится возможность и условия...сделать дополнение.
Спасибо.

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
2
19:14

Здравствуйте.
Попробуйте так:

			<?php  
			$action = rcl_get_time_user_action($user_ID); 
			echo rcl_get_miniaction($action);
			?>

$user_ID - id нужного юзера

1
garry
не в сети 16 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2925
3
19:31

Спасибо большое!
Теперь понял как вывести, все работает как надо, с поправками под плагин.

0
Dmitriy Danilov
не в сети 6 лет
На сайте с 29.02.2016
Участник
4
11:59

Дабы не создавать новую тему, задам вопрос здесь.
Скажите пожалуйста, как можно вывести статус(онлайн/оффлайн) пользователя в произвольном месте. Вышеуказанный метод вызывает ошибку, а rcl_action() ничего не возвращает

0
Dmitriy Danilov
не в сети 6 лет
На сайте с 29.02.2016
Участник
5
13:20

Только в моем случае я имею ввиду абсолютно произвольное место на сайте (вне кабинета)

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
6
16:31

Функция выше работоспособна. Читайте внимательней что она принимает.

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
7
17:41

Вопрос на эту же тему.
Как вывести понятно, но как вывести в своем формате? Допустим заменив зеленый круг на надписть "В СЕТИ".
rcl_get_miniaction() возвращает уже готовый HTML код в виде строки. Ну не стрипостить же ее... 🙁

P.S. ...но если уж другого метода нет, то вставить
- в functiom.php темы:

/**
 * [user_status      FRONT-OFFICE: Return current user status]
 * @param  [integer] $user_ID  [ID current user]
 * @return [string]            [HTML code]
 */
function user_status( $user_ID ) {
    $action = rcl_get_time_user_action( $user_ID );
    $status = rcl_get_miniaction( $action );
    $status = strpos( $status, 'online' );
    $user_status = '<div id="user-status">';

        if( $status )
            $user_status .= '<span>'.__( 'ONLINE' ).'</span>';
        else
            $user_status .= '<span>'.__( 'OFLINE' ).'</span>';
        
    $user_status .= '</div>';

    return $user_status;
}

-в файле, где требуется вывести статус (внутри цикла):

<?php
$my_post = get_post( $id );
$user_1 = $my_post->post_author; // post author
echo user_status( $user_1 ); //Get user status 
?>

IMHO: Считаю это костылем и привожу как теоретическое решение проблемы 🙂

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
8
18:34

Проверил - выводит

global $user_ID;
$action = rcl_get_time_user_action($user_ID);
$last_action = rcl_get_useraction($action);
$class = (!$last_action&&$action)?'в сети':'не в сети';
echo $class;

3
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
9
19:25

Сенкс, Отшельник
8)

Итак резюме - работающий гибрид:

В function.php темы:

/**
 * [user_status      FRONT-OFFICE: Return current user status]
 * @param  [integer] $user_ID  [ID current user]
 * @return [string]            [Status text]
 */
function user_status( $user_ID ) {

    $action = rcl_get_time_user_action( $user_ID );
    $last_action = rcl_get_useraction( $action );
    $status = ( !$last_action && $action ) ? __( 'ONLINE' ) : __( 'OFLINE' );

    return $status;
}

В шаблоне темы:

<span>
    <?php echo user_status( $user_1 ); //Get user status ?>
</span>

На вопрос "почему так?" отвечаю - дабы иметь возможность вывести статусы любого количества юзеров на одной странице.

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
10
20:27

Оффтоп конечно - расшифруете: кем или чем вы сгенерировали 3 первые строки комментария? Автогенерация?
Мне интересно. В своей IDE netBeans я или не нашел это или нет там. (p.s. ну для общего развития. Хотя считаю в таких маленьких фрагментах - это излишним. Код и так сам за себя говорит)

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
11
15:23

Sublime Texter 3 плагин Emmet
Только он генерирует шаблон, который необходимо будет еще заполнять. Приблизительно так:

/**
 * [base_pagination description]
 * @param  string  $before   [description]
 * @param  string  $after    [description]
 * @param  boolean $echo     [description]
 * @param  array   $args     [description]
 * @param  [type]  $wp_query [description]
 * @return [type]            [description]
 */

P.S. Ну комментарии никогда не излишни. Хотя б для экономии времени. Проще прочитать дискрипшн, чем перечитывать пару строк кода и вспоминать с какой целью они были написаны. Особенно когда у тебя таких коротких функций пара сотен в файле...

1
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
12
15:47

Спасибо. Это для меня не вариант. Много ручной работы выйдет. Даже больше ручной работы, чем вставить:

 // комментарий, что делает проверка ниже

Я думал это автодокументация (типа ApiGen или phpDocumentor)...

0
Rob Roy
не в сети 7 лет
На сайте с 15.07.2016
Участник
13
16:59

Тема превращается в офтоп 🙂

Нас учили кодингу на нетбинсе. Но со временем меня начала утомлять его нарастающая с размерами проектов неповоротливость.
Перепробовал с десяток разных IDE и "псевдо IDE". Остановился на ST 3.

0
Тема закрыта. Публикация новых сообщений запрещена.