Заработок в интернете » Создание сайтов » DLE Forum (Правка бага с редактированием поста)

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

Похожие новости



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.