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

require_once('api/Mgc.php');

class PageAdmin extends Mgc {
    
    public function fetch() {
        $page = new stdClass;
        /*Прием информации о страницу*/
        if($this->request->method('POST')) {
            $page->id = $this->request->post('id', 'integer');
            $page->name = $this->request->post('name');
            $page->name_h1 = $this->request->post('name_h1');
            $page->url = trim($this->request->post('url'));
            $page->meta_title = $this->request->post('meta_title');
            $page->meta_keywords = $this->request->post('meta_keywords');
            $page->meta_description = $this->request->post('meta_description');
            $page->description = $this->request->post('description');
            $page->visible = $this->request->post('visible', 'boolean');
            
            /*Не допустить одинаковые URL разделов*/
            if(($p = $this->pages->get_page($page->url)) && $p->id!=$page->id) {
                $this->design->assign('message_error', 'url_exists');
            } elseif(empty($page->name)) {
                $this->design->assign('message_error', 'empty_name');
            } elseif(substr($page->url, -1) == '-' || substr($page->url, 0, 1) == '-') {
                $this->design->assign('message_error', 'url_wrong');
            } else {
                /*Добавление/Обновление страницы*/
                if(empty($page->id)) {
                    $page->id = $this->pages->add_page($page);
                    $page = $this->pages->get_page($page->id);
                    $this->design->assign('message_success', 'added');
                } else {
                    // Запретим изменение системных url.
                    $check_page = $this->pages->get_page(intval($page->id));
                    if (in_array($check_page->url, $this->pages->system_pages) && $page->url != $check_page->url) {
                        $page->url = $check_page->url;
                        $this->design->assign('message_error', 'url_system');
                    }
                    $this->pages->update_page($page->id, $page);
                    $page = $this->pages->get_page($page->id);
                    $this->design->assign('message_success', 'updated');
                }
            }
        } else {
            $id = $this->request->get('id', 'integer');
            if(!empty($id)) {
                $page = $this->pages->get_page(intval($id));
            } else {
                $page->visible = 1;
            }
        }
        
        $this->design->assign('page', $page);
        return $this->design->fetch('page.tpl');
    }
    
}