Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Repository/UserFollow.php
<?php

namespace XF\Repository;

use
XF\Mvc\Entity\Finder;
use
XF\Mvc\Entity\Repository;

class
UserFollow extends Repository
{
   
/**
     * @return Finder
     */
   
public function findFollowingForProfile(\XF\Entity\User $user)
    {
        return
$this->finder('XF:UserFollow')
            ->
with('FollowUser', true)
            ->
with('FollowUser.Profile', true)
            ->
with('FollowUser.Option', true)
            ->
where('FollowUser.is_banned', false)
            ->
where('FollowUser.user_state', 'valid')
            ->
where('user_id', $user->user_id);
    }

   
/**
     * @return Finder
     */
   
public function findFollowersForProfile(\XF\Entity\User $user)
    {
        return
$this->finder('XF:UserFollow')
            ->
with('User', true)
            ->
with('User.Profile', true)
            ->
with('User.Option', true)
            ->
where('User.is_banned', false)
            ->
where('User.user_state', 'valid')
            ->
where('follow_user_id', $user->user_id);
    }

    public function
rebuildFollowingCache($userId)
    {
       
$following = $this->db()->fetchAllColumn("
            SELECT follow_user_id
            FROM xf_user_follow
            WHERE user_id = ?
            AND follow_user_id <> ?
        "
, [$userId, $userId]);

       
$profile = $this->em->find('XF:UserProfile', $userId);
        if (
$profile)
        {
           
$profile->fastUpdate('following', $following);
        }

        return
$following;
    }
}