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');
}
}