1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.3.x Show user is online

Тема в разделе "Made in XF-Russia.ru", создана пользователем CyberAP, 23.11.2010.

Загрузка
  1. asket

    asket Активный пользователь

    Регистрация:
    07.02.13
    Сообщения:
    152
    Симпатии:
    40
    Версия XF:
    1.2.0
    Скажите, как изменить цвет текста "Онлайн"?
     
  2. AimFire

    AimFire Местный

    Регистрация:
    17.10.11
    Сообщения:
    11
    Симпатии:
    1
    background-color: @primaryLight;
    Вроде как это
     
    asket нравится это.
  3. Tonny

    Tonny Местный

    Регистрация:
    01.12.12
    Сообщения:
    1
    Симпатии:
    1
    Версия XF:
    1.1.3
    color: @contentBackground;
     
    asket нравится это.
  4. AimFire

    AimFire Местный

    Регистрация:
    17.10.11
    Сообщения:
    11
    Симпатии:
    1
    Да я дурак это же фон простите ;)
     
  5. asket

    asket Активный пользователь

    Регистрация:
    07.02.13
    Сообщения:
    152
    Симпатии:
    40
    Версия XF:
    1.2.0
    Цвет фона тоже понадобился, спасибо.
     
  6. akinak

    akinak Местный

    Регистрация:
    12.02.13
    Сообщения:
    259
    Симпатии:
    243
    Версия XF:
    1.1.3
    Немного изменил дополнение, теперь онлайн статус показывается и в личных переписках тоже, а не только в постах.
    Может, кому пригодится.
    Если уже установлен хак, то достаточно залить файлы, устанавливать через админку не нужно.
     

    Вложения:

    Consul, SpiritFlame и Mirovinger нравится это.
  7. fly_indiz

    fly_indiz Местный

    Регистрация:
    20.08.11
    Сообщения:
    460
    Симпатии:
    357
    Версия XF:
    1.4.3
    а с 1.2.0 совместимо? или в 1.2.0 это в коробке есть?
     
  8. Union

    Union Местный

    Регистрация:
    12.10.11
    Сообщения:
    306
    Симпатии:
    86
    Версия XF:
    1.1.2
    совместимо, нету.
     
  9. AlexiusM

    AlexiusM Пользователь

    Регистрация:
    18.07.13
    Сообщения:
    66
    Симпатии:
    16
    Версия XF:
    1.2.4
    установил на последнюю 1.2.0, все с первого раза работает на ура!спасибо!
     
  10. adder

    adder Местный

    Регистрация:
    08.10.10
    Сообщения:
    1 164
    Симпатии:
    846
    Версия XF:
    1.3.4
    Кто-нибудь знает, как сделать вывод онлайн статуса не в message_user_info шаблоне, а в message шаблоне?
     
  11. andryugist

    andryugist Пользователь

    Регистрация:
    02.01.13
    Сообщения:
    51
    Симпатии:
    2
    Версия XF:
    1.2.2
    В версии 1.2.2 не работает.
     
  12. adder

    adder Местный

    Регистрация:
    08.10.10
    Сообщения:
    1 164
    Симпатии:
    846
    Версия XF:
    1.3.4
    Всё работает, просто Вы что-то не так делаете.
    Тут стоит эта модификация (версия форума 1.2.2). Плюс позавчера ставил клиенту эту модификацию на 1.2.2 форум.
     
  13. Rengor

    Rengor Новичок

    Регистрация:
    29.08.13
    Сообщения:
    6
    Симпатии:
    0
    Версия XF:
    1.1.5
    Установил себе, спасибо
     
  14. muxa-one

    muxa-one Местный

    Регистрация:
    25.01.13
    Сообщения:
    38
    Симпатии:
    1
    Версия XF:
    1.2.4
    А как вместо слова онлайн поставить свою картинку?
     
  15. eterskov

    eterskov Местный

    Регистрация:
    12.03.12
    Сообщения:
    1 329
    Симпатии:
    386
    Версия XF:
    1.2.3
    Я фон менял так. В шаблоне whisper_addon_fixes.css (это наверное применимо только для стиля whisper)
    КОД

    Код:
    /* User Online Status */
    
    .userUserOnline,
    .userUserOffline,
    .userUserOnlineInvisible
    {
        font-size: 10px;
        font-weight: bold;
        color: @secondaryLightest;
        background: @primaryMedium;
        padding: 1px 5px;
        margin: -5px 5px;
        border: 1px solid @primaryDark;
        border-radius: 3px;
        border-top-right-radius: 0px;
        display: inline-block;
        position: absolute;
        right: -6px;
        box-shadow: 1px 1px 3px rgba(0,0,0, 0.25);
    
        margin: 0;
        margin-top: -8px;
    }
    Строку background: @primaryMedium; заменил на свой цвет background: #свой цвет;
    --- добавлено : 1 ноя 2013 в 20:05 ---
    А в стиле Social это шаблон message_user_info.css :)
     
    Последнее редактирование модератором: 09.11.2013
  16. Kelt

    Kelt Read only

    Регистрация:
    13.06.11
    Сообщения:
    146
    Симпатии:
    46
    Я тут загорелся целью сделать онлайн статус как в Steam'e (если онлайн то появляется зеленая рамка). Думаю на форуме такое смотрелось бы неплохо.
    Screen Shot 2013-11-13 at 22.44.30.png

    UPD: в общем сделал, если кому надо, могу выложить.
     
    Последнее редактирование: 14.11.2013
    asket, Lex и Mirovinger нравится это.
  17. adder

    adder Местный

    Регистрация:
    08.10.10
    Сообщения:
    1 164
    Симпатии:
    846
    Версия XF:
    1.3.4
    @Kelt интересная задумка, поделитесь решением, пожалуйста :)


    Sent from my iPod touch 5 using Tapatalk
     
    Mirovinger нравится это.
  18. Kelt

    Kelt Read only

    Регистрация:
    13.06.11
    Сообщения:
    146
    Симпатии:
    46
    Как выглядит данная модификация http://d.pr/i/FAYN

    Хорошо, но для начала советую сделать правки на тестовом сайте или стиле.

    1. Заменим все содержимое файла Plugin.php , что находится по адресу /library/ASP/Online status/Plugin на:

    Код:
    <?php
    
    class Asp_OnlineStatus_Plugin_Plugin
    {
    
        protected static $_session_timeout;
        protected static $_online_status_template;
        protected static $_online_location;
    
        public static function extendModel($class, array &$extend)
        {
            if($class == 'XenForo_Model_Post')
            {
                $extend[] = 'Asp_OnlineStatus_Model_AspPost';
            }
        }
    
        public static function messageUserInfo_TemplateHook($name, &$contents, $params, XenForo_Template_Abstract $template)
        {
            if(in_array($name, array('message_user_info_avatar', 'message_user_info_text', 'message_user_info_extra')) && isset($params['user']['message']) && !isset($params['user']['conversation_id']))
            {
         
         
                $visitor = XenForo_Visitor::getInstance();
         
                //if the user is online, and their online status is visible, show them regardless
                if(($params['user']['view_date'] > self::_getSessionTimeout()) && $params['user']['visible'])
                {
                    $userStatus['text'] = new XenForo_Phrase('online');
                    $userStatus['class'] = 'UserOnline';
                }
                //if the user is online, their online status is invisible, but the current user is an admin, or they're the current user, we'll call them online-invisible
                else if(($params['user']['view_date'] > self::_getSessionTimeout()) && ($params['user']['visible'] == 0) && ($visitor['is_admin'] || $visitor['user_id'] == $params['user']['user_id']))
                {
                    $userStatus['text'] = new XenForo_Phrase('online_invisible');
                    $userStatus['class'] = 'UserOnlineInvisible';
                }
                //if the user is an admin, their online status is invisible, but the current user is a moderator, we'll call them online_invisible
                else if($params['user']['view_date'] > self::_getSessionTimeout() && $params['user']['visible'] == 0 && $params['user']['is_admin'] && $visitor['is_moderator'])
                {
                    $userStatus['text'] = new XenForo_Phrase('online_invisible');
                    $userStatus['class'] = 'UserOnlineInvisible';
                }
                //otherwise, we'll call them offline
                else
                {
                    $userStatus['text'] = new XenForo_Phrase('offline');
                    $userStatus['class'] = 'UserOffline';
                }
    
                self::_getOnlineStatusTemplate()->setParam('userStatus', $userStatus);
                foreach(array('message_user_info_avatar', 'message_user_info_text') AS $location => $hook_name)
                {
                    /*
                    * This logic is kind of obtuse
                    * The location of the the online indicator tag is stored as a number between 1 to 6
                    * I'm using the $location variable to determine where we should be displaying the online status based on that.
                    * ($location + 1) * 2 is one of 2, 4, or 6.
                    * So, if it's 1 or 2, and the template hook name is "message_user_info_avatar", we execute the code...and so on.
                    * But, I don't care about the actual number, just if it's even or odd.
                    * The unfortunate part is that we don't have a great way of extending it. I could drop it into the middle of the first two blocks
                    * and multiply by 3, but the third block would need special logic
                    * So, this is what it is for now.
                    */
                    if($name == $hook_name && (self::_getOnlineLocation() == ((($location + 1) * 2) -1) || self::_getOnlineLocation() == (($location + 1) * 2)))
                    {
                        if(self::_getOnlineLocation() %2 == 0)
                        {
                            $contents .= self::_getOnlineStatusTemplate();
                        }
                        else
                        {
                            $contents = self::_getOnlineStatusTemplate() . $contents;
                        }
                    }
                }
            }
        }
    
        protected static function _getOnlineStatusTemplate()
        {
            if(!isset(self::$_online_status_template))
            {
                self::$_online_status_template = new XenForo_Template_Public('message_user_online');
            }
    
            return self::$_online_status_template;
        }
    
        protected static function _getSessionTimeout()
        {
            if(!isset(self::$_session_timeout))
            {
                self::$_session_timeout = XenForo_Model::create('XenForo_Model_Session')->getOnlineStatusTimeout();
            }
    
            return self::$_session_timeout;
        }
    
        protected static function _getOnlineLocation()
        {
            if(!isset(self::$_online_location))
            {
                self::$_online_location = XenForo_Application::get('options')->displayOnlineLocation;
            }
    
            return self::$_online_location;
        }
    }
    
    Это нужно для того чтобы изменить область вывода плагина из блока "extraUserInfo" в "avatarHolder".

    2. В шаблоне message_user_online заменить все содержимое на

    Код:
    <span class="user{$userStatus.class}"></span>
    3. В extra.css добавить

    Код:
    .messageUserBlock div.avatarHolder .avatar {
    z-index: 10000;
    position: relative;
    }
    
    .userUserOnline {
    position: relative;
    height: 104px;
    width: 104px;
    border-radius: 3px;
    z-index: 1000;
    display: block;
    background: linear-gradient(to bottom, #9BC861 5%,#789E4C 95%);
    margin-left: 9px;
    margin-top: -113px;
    }
    
    .userUserOffline {
    position: relative;
    height: 102px;
    width: 102px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    -khtml-border-radius: 3px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    -khtml-border-radius: 3px;
    border-radius: 3px;
    z-index: 1000;
    display: block;
    background: linear-gradient(to bottom, #999 5%, #bbb 95%);
    margin-left: 10px;
    margin-top: -112px;
    }
    
    #content.thread_view .avatar img, .avatar .img, .avatarCropper {
    background-color: transparent;
    border: none;
    }
    
    #content.EWRporta_ArticleView .userUserOnline {
    display: none;
    }
     
    Последнее редактирование: 14.11.2013
    Goldman, asket, Mirovinger и 2 другим нравится это.
  19. Lex

    Lex Dura Lex

    Регистрация:
    27.11.10
    Сообщения:
    820
    Симпатии:
    159
    Версия XF:
    1.5.1
    На мой взгляд та реализация что сейчас есть на данном сайте более удачная, как то видно сразу, что пользователь в сети по ленточке. А в этой реализации фиг разглядишь, если не знаешь точно что смотреть, да и просто пользователь и не поймет мне кажется, не увидит изменений и соответственно предложенного ему функционала.
     
  20. adder

    adder Местный

    Регистрация:
    08.10.10
    Сообщения:
    1 164
    Симпатии:
    846
    Версия XF:
    1.3.4
    @Lex эта модификация будет идеальна для игровых порталов, где почти каждый пользователь пользуется Steam :)
     
    Mirovinger нравится это.

Поделиться этой страницей