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

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

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

Question Ссылка в ленте активности на пост на форуме.

Discussion in 'Прочая Поддержка - Help Requests' started by avantus, May 11, 2012.

  1. avantus Thread starter User


    Offline
    Message Count:
    84
    Likes Received:
    6
    My version of SE:
    3.20
    SE4.2.3 + Forum 4.2.2
    Как сделать чтобы в ленте активности была ссылка на конкретный ответ в теме на форуме, а не на первую страницу темы?
  2. nadri Administrator


    Offline
    • Admin
    • Знаменитый
    Message Count:
    1,257
    Likes Received:
    392
    My version of SE:
    4.6.0
    There is already a option to do that - look at pic.

    Attached Files:

  3. avantus Thread starter User


    Offline
    Message Count:
    84
    Likes Received:
    6
    My version of SE:
    3.20
    У меня эта ссылка ведет на первую страницу темы, а не на сообщение.....
  4. avantus Thread starter User


    Offline
    Message Count:
    84
    Likes Received:
    6
    My version of SE:
    3.20
    На данный момент решил эту проблему следующим образом.
    В файле \application\modules\Forum\controllers\TopicController.php в строке $action = $activityApi->addActivity($viewer, $topic, 'forum_topic_reply'); поменял $topic на $post. После этого действия в ленту активности (ответ на форуме) стали добавляться с object_type=forum_post (до этого было object_type=forum_topic), что позволило выводить в ленту активности действия с ссылкой на конкретный ответ.
    Но тут возникла другая проблема... В таблицу activity_stream эти действия стали добавляться только с параметром target_type=owner. Из-за этого действия отображались только в ленте автора сообщения. Не найдя других способов исправить это сделал так: в файле \application\modules\Activity\Model\DbTable\Actions.php после кода:
    Code:
    // Add privacy bindings
        $streamTable = Engine_Api::_()->getDbtable('stream', 'activity');
        foreach( (array) $event->getResponses() as $response )
        {
          if( isset($response['target']) )
          {
            $target_type = $response['target'];
            $target_id = 0;
          }
     
          else if( isset($response['type']) && isset($response['identity']) )
          {
            $target_type = $response['type'];
            $target_id = $response['identity'];
          }
     
          else
          {
            continue;
          }
     
          $streamTable->insert(array(
            'action_id' => $action->action_id,
            'type' => $action->type,
            'target_type' => (string) $target_type,
            'target_id' => (int) $target_id,
            'subject_type' => $action->subject_type,
            'subject_id' => $action->subject_id,
            'object_type' => $action->object_type,
            'object_id' => $action->object_id,
          ));
        }
    добавил код:
    Code:
    foreach( (array) $event->getResponses() as $response )
        {
        if ($action->type=='forum_topic_reply')
        {$target_type = 'everyone';
        $target_id = 0;
        $streamTable->insert(array(
            'action_id' => $action->action_id,
            'type' => $action->type,
            'target_type' => (string) $target_type,
            'target_id' => (int) $target_id,
            'subject_type' => $action->subject_type,
            'subject_id' => $action->subject_id,
            'object_type' => $action->object_type,
            'object_id' => $action->object_id,
          ));
        }
        }
    Вот так пока что я решил данную проблему. Получилось Примерно следующее (ссылка "перейти к ответу" ведет на конкретный ответ в теме на форуме):
    [IMG]

Share This Page

All rights reserved SocEngine.ru ©