Вход Регистрация
Файл: library/XenForo/LikeHandler/ProfilePost.php
Строк: 92
<?php

/**
 * Handler for the specific profile post-related like aspects.
 *
 * @package XenForo_Like
 */
class XenForo_LikeHandler_ProfilePost extends XenForo_LikeHandler_Abstract
{
    
/**
     * Increments the like counter.
     * @see XenForo_LikeHandler_Abstract::incrementLikeCounter()
     */
    
public function incrementLikeCounter($contentId, array $latestLikes$adjustAmount 1)
    {
        
$dw XenForo_DataWriter::create('XenForo_DataWriter_DiscussionMessage_ProfilePost');
        
$dw->setExistingData($contentId);
        
$dw->set('likes'$dw->get('likes') + $adjustAmount);
        
$dw->set('like_users'$latestLikes);
        
$dw->save();
    }

    
/**
     * Gets content data (if viewable).
     * @see XenForo_LikeHandler_Abstract::getContentData()
     */
    
public function getContentData(array $contentIds, array $viewingUser)
    {
        
$profilePostModel XenForo_Model::create('XenForo_Model_ProfilePost');

        
$profilePosts $profilePostModel->getProfilePostsByIds($contentIds, array(
            
'join' => XenForo_Model_ProfilePost::FETCH_USER_RECEIVER
        
));

        
$userIds = array();
        foreach (
$profilePosts AS $profilePost)
        {
            
$userIds[$profilePost['profile_user_id']] = true;
        }
        
$users $profilePostModel->getModelFromCache('XenForo_Model_User')->getUsersByIds(array_keys($userIds), array(
            
'join' => XenForo_Model_User::FETCH_USER_PRIVACY,
            
'followingUserId' => $viewingUser['user_id']
        ));

        foreach (
$profilePosts AS $key => &$profilePost)
        {
            if (!isset(
$users[$profilePost['profile_user_id']]))
            {
                unset(
$profilePosts[$key]);
            }
            else
            {
                
$user $users[$profilePost['profile_user_id']];
                if (!
$profilePostModel->canViewProfilePostAndContainer(
                    
$profilePost$user$null$viewingUser
                
))
                {
                    unset(
$profilePosts[$key]);
                }
                else
                {
                    
$profilePost['profileUser'] = $user;
                }
            }
        }

        return 
$profilePosts;
    }

    
/**
     * @see XenForo_LikeHandler_Abstract::batchUpdateContentUser()
     */
    
public function batchUpdateContentUser($oldUserId$newUserId$oldUsername$newUsername)
    {
        
$profilePostModel XenForo_Model::create('XenForo_Model_ProfilePost');
        
$profilePostModel->batchUpdateLikeUser($oldUserId$newUserId$oldUsername$newUsername);
    }

    
/**
     * Gets the name of the template that will be used when listing likes of this type.
     *
     * @return string news_feed_item_profile_post_like
     */
    
public function getListTemplateName()
    {
        return 
'news_feed_item_profile_post_like';
    }
}
Онлайн: 2
Реклама