HEX
Server: Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 mod_fcgid/2.3.9 PHP/5.4.16
System: Linux dvm.vladweb.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: region-gk.ru (1016)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: /home/temp/yarusvl.ru/adminx/core/ReviewsAdmin.php
<?php

require_once('api/Mgc.php');

class ReviewsAdmin extends Mgc {

    public function fetch() {
        $filter = array();
        $filter['page'] = max(1, $this->request->get('page', 'integer'));
        $filter['limit'] = 40;

        // Поиск
        $keyword = $this->request->get('keyword', 'string');
        if (!empty($keyword)) {
            $filter['keyword'] = $keyword;
            $this->design->assign('keyword', $keyword);
        }

        // Обработка действий
        if ($this->request->method('post')) {
            // Действия с выбранными
            $ids = $this->request->post('check');
            if (!empty($ids) && is_array($ids)) {
                switch ($this->request->post('action')) {
                    case 'approve': {
                        foreach ($ids as $id) {
                            $this->reviews->update_review($id, array('approved' => 1));
                        }
                        break;
                    }
                    case 'delete': {
                        foreach ($ids as $id) {
                            $this->reviews->delete_review($id);
                        }
                        break;
                    }
                }
            }
        }

        $filter['has_parent'] = false;

        // Отображение
        $reviews_count = $this->reviews->count_reviews($filter);
        // Показать все страницы сразу
        if ($this->request->get('page') == 'all') {
            $filter['limit'] = $reviews_count;
        }
        $this->design->assign('pages_count', ceil($reviews_count / $filter['limit']));
        $this->design->assign('current_page', $filter['page']);

        $reviews = $this->reviews->get_reviews($filter, true);
        foreach ($reviews as $review) {
            if ($review->video) {
                $tmp = explode('/', $review->video);
                $tmp = end($tmp);
                $tmp = stristr($tmp, 'v=');
                $b_p = strpos($tmp, '&');
                if ($b_p) {
                    $tmp = substr($tmp, 0, $b_p);
                }
                $tmp = substr($tmp, 2);
                $review->video = $tmp;
            }
        }

        $filter['has_parent'] = true;
        unset($filter['page']);
        unset($filter['limit']);
        $children = array();
        foreach ($this->reviews->get_reviews($filter) as $review) {
            if ($review->video) {
                $tmp = explode('/', $review->video);
                $tmp = end($tmp);
                $tmp = stristr($tmp, 'v=');
                $b_p = strpos($tmp, '&');
                if ($b_p) {
                    $tmp = substr($tmp, 0, $b_p);
                }
                $tmp = substr($tmp, 2);
                $review->video = $tmp;
            }
            $children[$review->parent_id][] = $review;
        }

        $this->design->assign('reviews', $reviews);
        $this->design->assign('children', $children);
        $this->design->assign('reviews_count', $reviews_count);

        return $this->design->fetch('reviews.tpl');
    }

}