DLE Forum (Правка бага с редактированием поста) |
6-07-2013, 15:28 | автор: admin | категория: Создание сайтов | (комментариев: 0) | | |
Найден баг с редактированием комментариев в [b]get( 'forum_groups');
if(!$forum_groups) { $get_forum_groups = $db->query( "SELECT * FROM ". USERPREFIX. "_forum_groups ORDER BY group_id ASC"); $forum_groups = array(); while($row = $db->get_row( $get_forum_groups)) { $forum_groups[$row['group_id']] = array(); foreach($row as $key => $value) { $forum_groups[$row['group_id']][$key] = $value; } } } $forum_moderators = $fcache->get( 'forum_moderators'); if(!$forum_moderators) { $get_moderators = $db->query( "SELECT * FROM ". USERPREFIX. "_forum_moderators ORDER BY mid ASC"); $forum_moderators = array(); while($row = $db->get_row( $get_moderators)) { $forum_moderators[$row['mid']] = array(); foreach($row as $key => $value) { $forum_moderators[$row['mid']][$key] = $value; } } $fcache->set( 'forum_moderators', $forum_moderators); } Обретаем: if($id!= $row['pid'])die("error"); Прибавляем ниже: $have_perm = 0; if( $is_logged and(( $member_id['name'] == $row['post_author'] and $row['is_register'] and $forum_groups[$member_id['user_group']]['post_edit'])OR $forum_moderators[$member_id['user_group']]['edit_post'])) { $have_perm = 1; } if(!$have_perm)die( "error"); Обретаем: elseif($_REQUEST['action'] == "save") { Прибавляем ниже: $row = $db->super_query( "SELECT * FROM ". PREFIX. "_forum_posts WHERE `pid` = '$id'"); if($id!= $row['pid'])die("error"); $have_perm = 0; if( $is_logged and(( $member_id['name'] == $row['post_author'] and $row['is_register'] and $forum_groups[$member_id['user_group']]['post_edit'])OR $forum_moderators[$member_id['user_group']]['edit_post'])) { $have_perm = 1; } if(!$have_perm)die( "error"); [b]Версия 2.4[/b] Раскрываем файл [b]/engine/forum/ajax/editpost.php[/b] Отыскать: include 'init.php'; Добавить ниже: require_once ENGINE_DIR.'/forum/classes/cache.php'; $fcache = new forum_cache; Отыскать: include_once ENGINE_DIR.'/forum/classes/parse.class.php'; Добавить выше: $forum_groups = $fcache->get( 'forum_groups'); if(!$forum_groups) { $get_forum_groups = $db->query( "SELECT * FROM ". USERPREFIX. "_forum_groups ORDER BY group_id ASC"); $forum_groups = array(); while($row = $db->get_row( $get_forum_groups)) { $forum_groups[$row['group_id']] = array(); foreach($row as $key => $value) { $forum_groups[$row['group_id']][$key] = $value; } } } $forum_moderators = $fcache->get( 'forum_moderators'); if(!$forum_moderators) { $get_moderators = $db->query( "SELECT * FROM ". USERPREFIX. "_forum_moderators ORDER BY mid ASC"); $forum_moderators = array(); while($row = $db->get_row( $get_moderators)) { $forum_moderators[$row['mid']] = array(); foreach($row as $key => $value) { $forum_moderators[$row['mid']][$key] = $value; } } $fcache->set( 'forum_moderators', $forum_moderators); } Отыскать: if($id!= $row['pid'])die("error"); Добавить ниже: $have_perm = 0; if( $is_logged and(( $member_id['name'] == $row['post_author'] and $row['is_register'] and $forum_groups[$member_id['user_group']]['post_edit'])OR $forum_moderators[$member_id['user_group']]['edit_post'])) { $have_perm = 1; } if(!$have_perm)die( "error"); Отыскать: elseif($_REQUEST['action'] == "save") { Добавить ниже: $row = $db->super_query( "SELECT * FROM ". PREFIX. "_forum_posts WHERE `pid` = '$id'"); if($id!= $row['pid'])die("error"); $have_perm = 0; if( $is_logged and(( $member_id['name'] == $row['post_author'] and $row['is_register'] and $forum_groups[$member_id['user_group']]['post_edit'])OR $forum_moderators[$member_id['user_group']]['edit_post'])) { $have_perm = 1; } if(!$have_perm)die( "error"); [b]Создатель:[/b]ShapeShifter |
|
Похожие новости | |
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.