Файл: library/XenForo/LikeHandler/Post.php
Строк: 101
<?php
/**
* Handler for the specific post-related like aspects.
*
* @package XenForo_Like
*/
class XenForo_LikeHandler_Post 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_Post');
$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)
{
$postModel = XenForo_Model::create('XenForo_Model_Post');
$posts = $postModel->getPostsByIds($contentIds, array(
'join' => XenForo_Model_Post::FETCH_THREAD | XenForo_Model_Post::FETCH_FORUM,
'permissionCombinationId' => $viewingUser['permission_combination_id']
));
$posts = $postModel->unserializePermissionsInList($posts, 'node_permission_cache');
$output = array();
foreach ($posts AS $postId => $post)
{
if (!$postModel->canViewPostAndContainer(
$post, $post, $post, $null, $post['permissions'], $viewingUser
))
{
continue;
}
$output[$postId] = $post;
}
return $output;
}
/**
* @see XenForo_LikeHandler_Abstract::batchUpdateContentUser()
*/
public function batchUpdateContentUser($oldUserId, $newUserId, $oldUsername, $newUsername)
{
$postModel = XenForo_Model::create('XenForo_Model_Post');
$postModel->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_post_like
*/
public function getListTemplateName()
{
return 'news_feed_item_post_like';
}
}