Просмотр поста

.
ДоХтор

Dezaktivator, протестил - работает

* (+/-)
<?php
/*
* Анекдоты для Джонцмс 4.х и 5.х
* Автор: Alibek_kz
* 2014.04.06
*/
define('_IN_JOHNCMS', true);
require_once('../incfiles/core.php');
$lng_an = core::load_lng('anekdot');
$textl = $lng_an['title'];
require_once('../incfiles/head.php');

$page = empty($_GET['page']) ? 0 : (int) abs($_GET['page']);
$uri = empty($page) ? '' : "&page=$page";

switch ($act) {
    default:
    
    echo '<div class="phdr">'. $lng_an['title'] .'</div>';
    $total = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `anekdot` WHERE `type` = 'cat'"), 0);
    
    if ($total) {
        $query = mysql_query("SELECT * FROM `anekdot` WHERE `type` = 'cat' ORDER BY(`time`) DESC LIMIT " . $start . ", " . $kmess . "");
        $i = 0;
        
        while ($res = mysql_fetch_assoc($query)) {
            $count = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `anekdot` WHERE `refid` = '".$res['id']."'"), 0);
            echo $i % 2 ? '<div class="list2">' : '<div class="list1">';
            echo '<img src="cat.gif" /> <a href="?act=catalog&amp;id='.$res['id'].'">'.$res['text'].'</a> ('.$count.')';
            echo ($rights >= 6 ? '<div class="func"><a href="?act=deletecat&amp;id='.$res['id'].'">'.$lng_an['remove'].'</a>  | <a href="?act=editcat&amp;id='.$res['id'].'">'.$lng_an['edit'].'</a></div>' : '');
            echo '</div>';
        }
        
        echo '<div class="phdr">'.$lng_an['all'].': ' . $total . '</div>';
        
        if ($total > $kmess) {
            echo '<div class="topmenu">' . functions::display_pagination('?', $start, $total, $kmess) . '</div>';
        }
    } else {
        echo functions::display_error($lng_an['empty']);
    }
    
    if ($user_id) {
        echo '<div class="gmenu"><a href="?act=addcat">'.$lng_an['addcat'].'</a></div>';
    }
    
    if ($rights >= 6) {
        $cm = mysql_result(mysql_query("SELECT COUNT(*) FROM `anekdot` WHERE `mod` = 0"), 0);
        echo '<div class="rmenu">
        <div class="func">
        <a href="?act=mod">'.$lng_an['moderation'].'</a> ('.$cm.')
        </div>
        </div>';
    }
    
        break;
    
    case 'catalog':
    
    $cat = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `anekdot` WHERE `id` = '".$id."'"));
    echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> &raquo; '.$cat['text'].'</div>';
    $total = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `anekdot` WHERE `type` = 'anekdot' AND `refid` = '".$id."' AND `mod` = 1"), 0);
    
    if ($total) {
        $query = mysql_query("SELECT * FROM `anekdot` WHERE `type` = 'anekdot' AND `refid` = '".
            $id."' AND `mod` = 1 ORDER BY(`time`) DESC LIMIT " . $start . ", " . $kmess . "");
        $i = 0;
        
        if ($rights >= 6) {
            echo '<form action="" method="post">';
        }
        
        while ($res = mysql_fetch_assoc($query)) {
            $user_get = functions::get_user($res['user_id']);
            $time = functions::display_date($res['time']);
            $user_rat = explode('|', $res['rating_users']);
            
            if (in_array($user_id, $user_rat)) {
                $rating = '<strong>'.$res['rating'].'</strong>';
            } else {
                $rating = '<a href="?act=plus&amp;id='. $res['id'] . $uri .'">+</a> '.
                '<strong>'.$res['rating'].'</strong> '.
                '<a href="?act=minus&amp;id='. $res['id'] . $uri .'">-</a>';
            }
            
            echo $i % 2 ? '<div class="list2">' : '<div class="list1">' . functions::display_user($user_get, array(
                'body'  => functions::checkout($res['text'], 1, 1),
                'iphide'=> 1,
                'footer'=> $lng_an['time_added'].': ' . $time)
            ) . ' '.$lng_an['rating'].': '.$rating.'<br />
            '.($rights >= 6 ? '<div class="func"><input type="checkbox" name="id[]" value="'.$res['id'].'" /> '.$lng_an['remove'].' <a href="?act=edit&id='.$res['id'].'">'.$lng_an['edit'].'</a></div>' : '').'</div>';
        }
        
        if ($rights >= 6) {
            echo '<input type="hidden" name="act" value="delete" />
            <div class="rmenu"><div class="func"><input type="submit" name="submit" value="'.$lng_an['remove'].'" /></div></div></form>';
        }
        
        echo '<div class="phdr">'.$lng_an['all'].': ' . $total . '</div>';
        
        if ($total > $kmess) {
            echo '<div class="topmenu">' . functions::display_pagination('?act=catalog&amp;id='.$id.'&amp;', $start, $total, $kmess) . '</div>';
        }
    } else {
        echo functions::display_error($lng_an['empty']);
    }
    
    if ($user_id) {
        echo '<div class="gmenu"><a href="?act=add&amp;id='.$id.'">'.$lng_an['add_new_anekdot'].'</a></div>';
    }
    
        break;
    
    case 'editcat':
    
    if ($rights >= 6) {
        if ($id > 0) {
            $cat = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `anekdot` WHERE `id` = '".$id."'"));
            echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['edit'].' "'.$cat['text'].'"</div>';
            if (isset($_POST['submit'])) {
                $name = trim(mysql_real_escape_string($_POST['name']));
                $query = mysql_query("UPDATE `anekdot` SET `text` = '".$name."', `time` = '".time()."' WHERE `id` = '".$id."'");
                if ($query) {
                    echo '<div class="gmenu">'.$lng_an['successfully_edited'].'</div>';
                } else {
                    echo functions::display_error($lng_an['error'], '<a href="?">'.$lng_an['title'].'</a>');
                }
            } else {
                echo '<div class="menu"><form action="" method="POST">
                '.$lng_an['namecat'].'<br />
                <input type="text" name="name" value="'.$cat['text'].'" /><br />
                <input type="submit" name="submit" value="'.$lng_an['edit'].'" />
                </form></div>';
            }
        } else {
            die(header('Location: ?'));
        }
    } else {
        echo functions::display_error($lng_an['access_denied_admin'], '<a href="?">'.$lng_an['title'].'</a>');
    }
    
        break;
        
    case 'edit':
    
    if ($rights >= 6) {
        if ($id > 0) {
            $f = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `anekdot` WHERE `id` = '".$id."'"));
            echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['edit'].'</div>';
            if (isset($_POST['submit'])) {
                $text = trim(mysql_real_escape_string($_POST['text']));
                $query = mysql_query("UPDATE `anekdot` SET `text` = '".$text."' WHERE `id` = '".$id."'");
                if ($query) {
                    echo '<div class="gmenu">'.$lng_an['successfully_edited'].'</div>';
                } else {
                    echo functions::display_error($lng_an['error'], '<a href="?">'.$lng_an['title'].'</a>');
                }
            } else {
                echo '<div class="menu"><form action="" method="POST">
                '.$lng_an['namecat'].'<br />
                <textarea name="text" cols="10" rows="10">'.$f['text'].'</textarea><br />
                <input type="submit" name="submit" value="'.$lng_an['edit'].'" />
                </form></div>';
            }
        } else {
            die(header('Location: ?'));
        }
    } else {
        echo functions::display_error($lng_an['access_denied_admin'], '<a href="?">'.$lng_an['title'].'</a>');
    }
    
        break;
        
    case 'plus':
    
    if ($user_id) {
        $res = mysql_fetch_assoc(mysql_query("SELECT * FROM `anekdot` WHERE `id` = '".$id."'"));
        $user_rat = explode('|', $res['rating_users']);
        if (!in_array($user_id, $user_rat)) {
            mysql_query("UPDATE `anekdot` SET `rating` = `rating`+1 WHERE `id` = '".$id."'");
            mysql_query("UPDATE `anekdot` SET `rating_users` = '".$user_id."|".$res['rating_users']."' WHERE `id` = '".$id."'");
            die(header('Location: ?act=catalog&id='. $res['refid'] . $uri));
        } else {
            echo functions::display_error($lng_an['rating_error'], '<a href="?">'.$lng_an['title'].'</a>');
        }
    } else {
        die(header('Location: ?'));
    }
    
        break;
        
    case 'minus':
    
    if ($user_id) {
        $res = mysql_fetch_assoc(mysql_query("SELECT * FROM `anekdot` WHERE `id` = '".$id."'"));
        $user_rat = explode('|', $res['rating_users']);
        if (!in_array($user_id, $user_rat)) {
            mysql_query("UPDATE `anekdot` SET `rating` = `rating`-1 WHERE `id` = '".$id."'");
            mysql_query("UPDATE `anekdot` SET `rating_users` = '".$user_id."|".$res['rating_users']."' WHERE `id` = '".$id."'");
            die(header('Location: ?act=catalog&id='. $res['refid'] . $uri));
        } else {
            echo functions::display_error($lng_an['rating_error'], '<a href="?">'.$lng_an['title'].'</a>');
        }
    } else {
        die(header('Location: ?'));
    }
    
        break;
        
    case 'add':
    
    if ($user_id) {
        echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['add_new_anekdot'].'</div>';
        if (isset($_POST['submit'])) {
            $mod = ($rights >= 6 ? 1 : 0);
            mysql_query("INSERT INTO `anekdot` SET
                `text` = '" . functions::checkin(trim($_POST['msg'])) . "',
                `user_id` = '" . $user_id . "',
                `mod` = '" . $mod . "',
                `refid` = '".$id."',
                `type` = 'anekdot',
                `time` = '" . time() . "'");
            echo '<div class="gmenu">'.$lng_an['successfully_added'].'<br />
            <a href="?">'.$lng_an['title'].'</a></div>';
        } else {
            echo '  <div class="menu">
            <form action="" method="POST">'.$lng_an['add_text'].':<br />
            <textarea name="msg" rows="10" cols="10"></textarea><br />
            <input type="submit" name="submit" value="'.$lng_an['add'].'" />
            </form>
            </div>';
        }
    } else {
        echo functions::display_error($lng_an['access_denied']);
    }
    
        break;
        
    case 'addcat':
    
    if ($rights >= 6) {
        echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['addcat'].'</div>';
        if (isset($_POST['submit'])) {
            $mod = ($rights >= 6 ? 1 : 0);
            mysql_query("INSERT INTO `anekdot` SET
                `text` = '" . functions::checkin(trim($_POST['name'])) . "',
                `user_id` = '" . $user_id . "',
                `mod` = '" . $mod . "',
                `type` = 'cat',
                `time` = '" . time() . "'");
            echo '<div class="gmenu">'.$lng_an['successfully_added_cat'].'<br />
            <a href="?">'.$lng_an['title'].'</a></div>';
        } else {
            echo '  <div class="menu">
            <form action="" method="POST">'.$lng_an['namecat'].':<br />
            <input type="text" name="name" value="" /><br />
            <input type="submit" name="submit" value="'.$lng_an['add'].'" />
            </form>
            </div>';
        }
    } else {
        echo functions::display_error($lng_an['access_denied_admin']);
    }
    
        break;
        
    case 'delete':
    
    if ($rights >= 6) {
        if (isset($_POST['submit']) && isset($_POST['id'])) {
            if (isset($_POST['yes'])) {
                foreach ($_POST['id'] as $key => $val) {
                    mysql_query("DELETE FROM `anekdot` WHERE `id` = '".$val."';");
                }
                echo '<div class="gmenu">'.$lng_an['successfully_removed'].'<br />
                <a href="?">'.$lng_an['title'].'</a></div>';
            } else {
                echo '<div class="menu">
                <form action="" method="post">'.$lng_an['remove_text'].'<br />';
                foreach ($_POST['id'] as $key => $val) {
                    echo '<input type="hidden" name="id[]" value="'.$val.'" />';
                }
                echo '<input type="hidden" name="act" value="delete" />
                <input type="hidden" name="yes" value="yes" />
                <input type="submit" name="submit" value="'.$lng_an['yes_or'].'" /></form> <a href="?">'.$lng_an['back'].'</a></div>';
            }
        } else {
            echo functions::display_error($lng_an['select_one'], '<a href="?">'.$lng_an['title'].'</a>');
        }
    } else {
        echo functions::display_error($lng_an['access_for_admin']);
    }
    
        break;
        
    case 'deletecat':
    
    if ($rights >= 6) {
        if ($id > 0) {
            $cat = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `anekdot` WHERE `id` = '".$id."'"));
            echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['remove'].' "'.$cat['text'].'"</div>';
            if (isset($_GET['yes'])) {
                mysql_query("DELETE FROM `anekdot` WHERE `id` = '".$id."';");
                mysql_query("DELETE FROM `anekdot` WHERE `refid` = '".$id."';");
                echo '<div class="gmenu">'.$lng_an['successfully_removed'].'<br />
                <a href="?">'.$lng_an['title'].'</a></div>';
            } else {
                echo '<div class="menu">'.$lng_an['remove_text'].'<br />';
                echo '<a href="?act=deletecat&amp;id='.$id.'&amp;yes">'.$lng_an['yes_or'].'</a> | <a href="?">'.$lng_an['back'].'</a></div>';
            }
        } else {
            echo functions::display_error($lng_an['error'], '<a href="?">'.$lng_an['title'].'</a>');
        }
    } else {
        echo functions::display_error($lng_an['access_for_admin']);
    }
    
        break;
        
    case 'mod':
    
    echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['moderation'].'</div>';
    if ($rights >= 6) {
        $total = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `anekdot` WHERE `mod` = 0"), 0);
        if ($total) {
            if (isset($_POST['submit'])) {
                foreach ($_POST['id'] as $key => $val) {
                    mysql_query("UPDATE `anekdot` SET `mod` = 1 WHERE `id` = '".$val."';");
                }
                echo '<div class="gmenu">'.$lng_an['successfully_added'].'</div>';
            } else {
                $query = mysql_query("SELECT * FROM `anekdot` WHERE `mod` = 0");
                echo '<form action="" method="POST">';
                while ($res = mysql_fetch_assoc($query)) {
                    $user_get = functions::get_user($res['user_id']);
                    $time = functions::display_date($res['time']);
                    echo $i % 2 ? '<div class="list2">' : '<div class="list1">' . functions::display_user($user_get, array(
                            'body'  => functions::checkout($res['text'], 1, 1),
                            'iphide'=> 1,
                            'footer'=> $lng_an['time_added'].': ' . $time)) . '
                    <input type="checkbox" name="id[]" checked="checked" value="'.$res['id'].'" /> '.$lng_an['moder'].'
                    </div>';
                }
                echo '<div class="rmenu"><input type="submit" name="submit" value="'.$lng_an['yes_or'].'" /></div>
                </form>';
                echo '<div class="phdr">'.$lng_an['all'].': ' . $total . '</div>';
                if ($total > $kmess) {
                    echo '<div class="topmenu">' . functions::display_pagination('?act='.$act.'&', $start, $total, $kmess) . '</div>';
                }
            }
        } else {
            echo functions::display_error($lng_an['all_anek_added']);
        }
    } else {
        echo functions::display_error($lng_an['access_for_admin']);
    }
    
        break;
}

require_once('../incfiles/end.php');