1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

индикатор онлайн в профиле

Discussion in 'Моды / Хаки - Mods / Hacks' started by GumSlone, Oct 29, 2014.

  1. GumSlone Thread starter User


    Offline
    Message Count:
    85
    Likes Received:
    8
    Добавляем индикатор онлайн в профиль пользователя,
    индикатор будет отображаться после имени пользователя.

    открываем:
    /application/modules/User/widgets/profile-status/Controller.php
    находим:
    PHP:
    // Get subject and check auth
        
    $subject Engine_Api::_()->core()->getSubject('user');
        
    //if( !$subject->authorization()->isAllowed($viewer, 'view') ) {
        //  return $this->setNoRender();
        //}
    и после добавляем этот код:
    PHP:
        $onlineTable Engine_Api::_()->getDbtable('online''user');
        
    $onlineTableName $onlineTable->info('name');
     
        
    $select $onlineTable->select()
        ->
    from($onlineTableName, array('COUNT(*) AS count'))
          ->
    where($onlineTableName.'.user_id = ?'$subject->user_id)
          ->
    where($onlineTableName.'.active > ?', new Zend_Db_Expr('DATE_SUB(NOW(),INTERVAL 20 MINUTE)'))
          ;
          
    $_is_online $select->query()->fetchColumn(0);
          
    $this->view->is_online $_is_online;
    сохраняем.

    открываем:
    /application/modules/User/widgets/profile-status/index.tpl
    находим:
    PHP:
    <?php echo $this->subject()->getTitle() ?>
    и после добавляем этот код:
    PHP:
    <?php
        
    if($this->is_online==1) echo '<span style="width:10px;height:10px;background-color:#5cb85c;border: 1px solid #4cae4c;border-radius:5px;color:white;font-size:12px;vertical-align:middle;">'.$this->translate('online').'</span>'
        
    ?>
    готово!

Share This Page

All rights reserved SocEngine.ru ©