Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Установил мод fluxbb.org/resources/mods/like-mod/
Подскажите, как ограничить возможность лайка по группам?
Offline
В файле like.php меняем
// Make sure form_user is correct
if ($pun_user['is_guest'])
message($lang_common['No permission']);
на
// Make sure form_user is correct
if ($pun_user['is_guest'] || ! in_array($pun_user['g_id'], array(ТУТ ЧЕРЕЗ ЗАПЯТУЮ НОМЕРА ГРУПП, КОТОРЫМ РАЗРЕШЕНО ЛАЙКАТЬ)))
message($lang_common['No permission']);
или
// Make sure form_user is correct
if ($pun_user['is_guest'] || in_array($pun_user['g_id'], array(ТУТ ЧЕРЕЗ ЗАПЯТУЮ НОМЕРА ГРУПП, КОТОРЫМ НЕ РАЗРЕШЕНО ЛАЙКАТЬ)))
message($lang_common['No permission']);
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, благодарю, однако сама кнопка у не перечисленных групп осталась активной, но после перегрузки страницы лайк от них исчезает, можно ли деактивировать и саму кнопку?
Offline
Во viewtopic.php заменить
if (!$pun_user['is_guest'] && $cur_post['poster_id'] != $pun_user['id']) // Like mod
на
if (!$pun_user['is_guest'] && $cur_post['poster_id'] != $pun_user['id'] && in_array($pun_user['g_id'], array(ТУТ ЧЕРЕЗ ЗАПЯТУЮ НОМЕРА ГРУПП, КОТОРЫМ РАЗРЕШЕНО ЛАЙКАТЬ))) // Like mod
или на
if (!$pun_user['is_guest'] && $cur_post['poster_id'] != $pun_user['id'] && ! in_array($pun_user['g_id'], array(ТУТ ЧЕРЕЗ ЗАПЯТУЮ НОМЕРА ГРУПП, КОТОРЫМ НЕ РАЗРЕШЕНО ЛАЙКАТЬ))) // Like mod
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, благодарю. А если я захочу удалить все лайки от группы с номером 7, какой командой это сделать в mysql?
Offline
@sharklaser, не получится это сделать через mysql из-за формата хранения лайков. Нужно писать скрипт на php.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
Ребят привет! установил данный мод на последнюю сборку от Visman и при нажатии на Unlike выдает ошибку:
Информация
Неверный csrf_hash. Вы перешли на эту страницу из неавторизованного источника.
неподскажите в чем я накосячил?
Offline
##
##
## Mod title: Like Mod
##
## Mod version: 1.0.3
## Works on FluxBB: 1.5.x, 1.4.x
## Release date: 2015-07-03
## Authors: adaur ([email protected])
## soyuka
##
## Description: This mod adds a button to "Like" a post at the bottom
## of each one and displays the users who liked the post.
## AJAX powered, thanks to soyuka! Degrades gracefully
## if javascript is not enabled.
##
## Affected files: viewtopic.php
## header.php
##
## Affects DB: Yes
##
## DISCLAIMER: Please note that "mods" are not officially supported by
## FluxBB. Installation of this modification is done at
## your own risk. Backup your forum database and any and
## all applicable files before proceeding.
##
##
#
#---------[ 1. UPLOAD ]-------------------------------------------------------
#
/upload folder to /
#
#---------[ 2. RUN ]----------------------------------------------------------
#
install_mod.php
#
#---------[ 3. DELETE ]-------------------------------------------------------
#
install_mod.php
#
#---------[ 4. OPEN ]---------------------------------------------------------
#
header.php
#
#---------[ 5. FIND (line: 87) ]---------------------------------------------
#
<link rel="stylesheet" type="text/css" href="style/<?php echo $pun_user['style'].'.css' ?>" />
<?php
#
#---------[ 6. AFTER, ADD ]---------------------------------------------------
#
if (basename($_SERVER['PHP_SELF']) == 'viewtopic.php')
{
if (file_exists(PUN_ROOT.'lang/'.$pun_user['language'].'/like_mod.php'))
require PUN_ROOT.'lang/'.$pun_user['language'].'/like_mod.php';
else
require PUN_ROOT.'lang/English/like_mod.php';
echo '<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>'."\n"; // Delete this line if jQuery is already loaded
echo '<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>'."\n"; // This as well
echo '<script type="text/javascript" src="include/like_mod.js"></script>'."\n";
echo '<script type="text/javascript">$(document).ready(function(){$(\'a.like\').wsLiker(\''.$pun_user['id'].'\', \''.pun_htmlspecialchars($pun_user['username']).'\', \''.$db->escape($lang_like_mod['Like']).'\', \''.$db->escape($lang_like_mod['Unlike']).'\', \''.$db->escape($lang_like_mod['Like this post']).'\');});</script>'."\n";
}
#
#---------[ 7. OPEN ]---------------------------------------------------------
#
viewtopic.php
#
#---------[ 8. FIND (line: 210) ]---------------------------------------------
#
p.edited_by,
#
#---------[ 9. ADD AFTER ]----------------------------------------------------
#
p.likes,
#
#---------[ 10. FIND (line: 299) ]--------------------------------------------
#
// Generation post action array (quote, edit, delete etc.)
#
#---------[ 11. AFTER, ADD ]---------------------------------------------------
#
if (!$pun_user['is_guest'] && $cur_post['poster_id'] != $pun_user['id']) // Like mod
{
if (empty($cur_post['likes']))
$like_button = '<li class="postlike"><span><a href="like.php?tid='.$id.'&pid='.$cur_post['id'].'&csrf_hash='.csrf_hash().'" class="like">'.$lang_like_mod['Like'].'</a></span></li>';
else
{
$likes = unserialize($cur_post['likes']);
if (isset($likes[$pun_user['id']]))
$like_button = '<li class="postunlike"><span><a href="like.php?tid='.$id.'&pid='.$cur_post['id'].'&unlike=1&csrf_hash='.csrf_hash().'" class="like">'.$lang_like_mod['Unlike'].'</a></span></li>';
else
$like_button = '<li class="postlike"><span><a href="like.php?tid='.$id.'&pid='.$cur_post['id'].'&csrf_hash='.csrf_hash().'" class="like">'.$lang_like_mod['Like'].'</a></span></li>';
}
}
else
$like_button = '';
#
#---------[ 12. FIND (line: 315) ]--------------------------------------------
#
if (($cur_topic['post_replies'] == '' && $pun_user['g_post_replies'] == '1') || $cur_topic['post_replies'] == '1')
$post_actions[] = '<li class="postquote"><span><a href="post.php?tid='.$id.'&qid='.$cur_post['id'].'">'.$lang_topic['Quote'].'</a></span></li>';
}
#
#---------[ 13. AFTER, ADD ]---------------------------------------------------
#
$post_actions[] = $like_button;
#
#---------[ 14. FIND (line: 315) ]--------------------------------------------
#
if ($pun_user['g_id'] == PUN_ADMIN || !in_array($cur_post['poster_id'], $admin_ids))
{
$post_actions[] = '<li class="postdelete"><span><a href="delete.php?id='.$cur_post['id'].'">'.$lang_topic['Delete'].'</a></span></li>';
$post_actions[] = '<li class="postedit"><span><a href="edit.php?id='.$cur_post['id'].'">'.$lang_topic['Edit'].'</a></span></li>';
}
$post_actions[] = '<li class="postquote"><span><a href="post.php?tid='.$id.'&qid='.$cur_post['id'].'">'.$lang_topic['Quote'].'</a></span></li>';
#
#---------[ 15. AFTER, ADD ]---------------------------------------------------
#
$post_actions[] = $like_button;
#
#---------[ 16. FIND (line: 378) ]--------------------------------------------
#
<?php
}
?>
<div class="postlinksb">
#
#---------[ 17. REPLACE WITH ]------------------------------------------------
#
<?php
if (!empty($cur_post['likes']))
{
$likes = unserialize($cur_post['likes']);
$comma = $output = '';
?>
<div class="blockpost <?php echo ($post_count % 2 == 0) ? ' roweven' : ' rowodd' ?> liker">
<div class="box">
<div class="inbox">
<div class="postbody">
<div class="postleft">
<dl>
<dd class="usertitle"><strong><?php echo (count($likes) == 1) ? $lang_like_mod['Like this post'] : $lang_like_mod['Like this post multiple']; ?></strong></dd>
</dl>
</div>
<div class="postright">
<div class="postmsg">
<p>
<?php
foreach($likes as $ids => $like_username)
{
$like_username = pun_htmlspecialchars($like_username);
if ($pun_user['g_view_users'] == '1')
$like_info = '<a href="profile.php?id='.$ids.'">'.$like_username.'</a>';
else
$like_info = $like_username;
if (empty($comma))
$like_pseudo = '<span title="'.$like_username.'">'.$like_info.'</span>';
else
$like_pseudo .= '<span title="'.$like_username.'">, '.$like_info.'</span>';
$comma = true;
}
echo $like_pseudo;
?>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
}
}
?>
<div class="postlinksb">
#
#---------[ 18. SAVE/UPLOAD ]-------------------------------------------------
#
Изменения в 11 шаге.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
Ребят привет! установил данный мод на последнюю сборку от Visman и при нажатии на Unlike выдает ошибку:
Информация Неверный csrf_hash. Вы перешли на эту страницу из неавторизованного источника.
неподскажите в чем я накосячил?
Привет, такая же ошибка.
Не связана ли она с правкой автором сборки include/functions.php
Или сам мод как то конфликтует с новой версией?
#
#---------[ 10. FIND (line: 299) ]--------------------------------------------
#
// Generation post action array (quote, edit, delete etc.)
#
#---------[ 11. AFTER, ADD ]---------------------------------------------------
#
if (!$pun_user['is_guest'] && $cur_post['poster_id'] != $pun_user['id']) // Like mod
{
if (empty($cur_post['likes']))
$like_button = '<li class="postlike"><span><a href="like.php?tid='.$id.'&pid='.$cur_post['id'].'" class="like">'.$lang_like_mod['Like'].'</a></span></li>';
else
{
$likes = unserialize($cur_post['likes']);
if (isset($likes[$pun_user['id']]))
$like_button = '<li class="postunlike"><span><a href="like.php?tid='.$id.'&pid='.$cur_post['id'].'&unlike=1" class="like">'.$lang_like_mod['Unlike'].'</a></span></li>';
else
$like_button = '<li class="postlike"><span><a href="like.php?tid='.$id.'&pid='.$cur_post['id'].'" class="like">'.$lang_like_mod['Like'].'</a></span></li>';
}
}
else
$like_button = '';
Пока что вообще убрал кнопку с UnLike, не особо нужна, но разобраться бы хотелось
$likes = unserialize($cur_post['likes']);
if (isset($likes[$pun_user['id']]))
$like_button = '';
else
Offline
@mrBin, вы изменения в 11 шаге установки сделали из предыдущего моего сообщения?
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
@Visman, благодарю за ответ. Дело было вечером... Мне не пришло в голову что Вы в ридми поправили код.
Все работает!
Спасибо за поддержку!
Редактировался mrBin (2017-08-11 14:19:57)
Offline
Страницы 1