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/BannerAdmin.php
<?php

require_once('api/Mgc.php');

class BannerAdmin extends Mgc {
    
    public function fetch() {
        $categories = $this->categories->get_categories_tree();
        $brands     = $this->brands->get_brands();
        $pages      = $this->pages->get_pages();
        $banner = new stdClass;
        /*Принимаем данные о группе баннеров*/
        if($this->request->method('POST')) {
            $banner->id = $this->request->post('id', 'integer');
            $banner->group_id = trim($this->request->post('group_id', 'string'));
            $banner->name = $this->request->post('name');
            $banner->visible = $this->request->post('visible', 'boolean');
            $banner->show_all_pages = (int)$this->request->post('show_all_pages');
            $banner->categories = implode(",",$this->request->post('categories'));
            $banner->brands = implode(",",$this->request->post('brands'));
            $banner->pages = implode(",",$this->request->post('pages'));

            $banner->group_id = preg_replace("/[\s]+/ui", '', $banner->group_id);
            $banner->group_id = strtolower(preg_replace("/[^0-9a-z_]+/ui", '', $banner->group_id));

            if(($b = $this->banners->get_banner($banner->group_id)) && $b->id!=$banner->id) {
                $this->design->assign('message_error', 'group_id_exists');
            } elseif(empty($banner->group_id)) {
                $this->design->assign('message_error', 'empty_group_id');
            } else {
                /*Добавляем/обновляем группу баннеров*/
                if (empty($banner->id)) {
                    $banner->id = $this->banners->add_banner($banner);
                    $banner = $this->banners->get_banner($banner->id);
                    $this->design->assign('message_success', 'added');
                } else {
                    $this->banners->update_banner($banner->id, $banner);
                    $banner = $this->banners->get_banner($banner->id);
                    $this->design->assign('message_success', 'updated');
                }
            }
            $banner->category_selected = $this->request->post('categories');
            $banner->brand_selected = $this->request->post('brands');
            $banner->page_selected = $this->request->post('pages');
        } else {
            /*Отображение группы баннеров*/
            $id = $this->request->get('id', 'integer');
            if(!empty($id)) {
                $banner = $this->banners->get_banner(intval($id));
                $banner->category_selected = explode(",",$banner->categories);//Создаем массив категорий
                $banner->brand_selected = explode(",",$banner->brands);//Создаем массив брендов
                $banner->page_selected = explode(",",$banner->pages);//Создаем массив страниц
            } else {
                $banner->visible = 1;
            }
        }
        
        $this->design->assign('banner', $banner);
        $this->design->assign('categories', $categories);
        $this->design->assign('brands',     $brands);
        $this->design->assign('pages',      $pages);
        
        return $this->design->fetch('banner.tpl');
    }
    
}