Вход Регистрация
Файл: system/controllers/wysiwygs/backend/actions/presets_add.php
Строк: 26
<?php

class actionWysiwygsPresetsAdd extends cmsAction {

    public function 
run($id = null, $is_copy = null){

        
$preset = [];

        
$do = 'add';

        if(
$id){

            
$do = $is_copy ? 'add' : 'edit';

            
$preset = $this->model->getPreset($id);

            if (!
$preset) {
                return 
cmsCore::error404();
            }

            if(
$is_copy){
                
$preset['title'] .= ' (1)';
            }

        }

        
$form = $this->getForm('preset', array($do));

        if(
$do == 'edit'){

            
$form->hideField('basic', 'wysiwyg_name');

            
$this->cms_template->setPageH1(ucfirst($preset['wysiwyg_name']));

        }

        
$errors = [];

        if (
$this->request->has('submit')){

            
$wysiwyg_name = $this->request->get('wysiwyg_name', '');

            if(!
$wysiwyg_name){
                
$errors['wysiwyg_name'] = ERR_VALIDATE_REQUIRED;
            }

            if (!
$errors){

                
$form_options = $this->getWysiwygOptionsForm($wysiwyg_name, [$do]);

                
$structure = $form_options->getStructure();

                foreach(
$structure as $key => $fieldset){
                    
$form->addFieldset($fieldset['title'], $key, $fieldset);
                }

                
$preset = $form->parse($this->request, true);

                
$errors = $form->validate($this,  $preset);

                if (!
$errors){

                    if(
$do == 'add'){
                        
$this->model->addPreset($preset);
                    } else {
                        
$this->model->updatePreset($id, $preset);
                    }

                    
cmsUser::addSessionMessage(LANG_SUCCESS_MSG, 'success');

                    
$this->redirectToAction('presets');

                }

            }

            if (
$errors){

                if(
$do == 'edit'){
                    
$preset['id'] = $id;
                }

                
cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
            }

        }

        return 
$this->cms_template->render('backend/preset', array(
            
'do'     => $do,
            
'preset' => $preset,
            
'form'   => $form,
            
'errors' => $errors
        
));

    }

}
Онлайн: 1
Реклама