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

namespace XF\Repository;

use
XF\Mvc\Entity\Repository;

class
UserIgnored extends Repository
{
    public function
getIgnoredUserCache($userId)
    {
        return
$this->db()->fetchPairs('
            SELECT user.user_id, user.username
            FROM xf_user_ignored AS ignored
            INNER JOIN xf_user AS user ON (ignored.ignored_user_id = user.user_id)
            WHERE ignored.user_id = ?
                AND user.is_staff = 0
                AND user.user_id <> ignored.user_id
            ORDER BY user.username
        '
, $userId);
    }

    public function
rebuildIgnoredCache($userId)
    {
       
$cache = $this->getIgnoredUserCache($userId);

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

        return
$cache;
    }

    public function
rebuildIgnoredCacheByIgnoredUser($ignoredUserId)
    {
       
$ignorers = $this->db()->fetchAllColumn("
            SELECT user_id
            FROM xf_user_ignored
            WHERE ignored_user_id = ?
        "
, $ignoredUserId);

       
$this->db()->beginTransaction();

        foreach (
$ignorers AS $ignorer)
        {
           
$this->rebuildIgnoredCache($ignorer);
        }

       
$this->db()->commit();
    }
}