Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/pages/templates.php
Строк: 69
<?php
namespace ConcreteControllerSinglePageDashboardPages;

use 
Core;
use 
ConcreteCorePageControllerDashboardPageController;
use 
PageTemplate;
use 
PageType;
use 
Exception;

class 
Templates extends DashboardPageController
{

    public function 
view()
    {
        
$this->set('templates'PageTemplate::getList());
    }

    public function 
delete($pTemplateID$token '')
    {
        
$valt Core::make('helper/validation/token');
        if (!
$valt->validate('delete_page_template'$token)) {
            
$this->set('message'$valt->getErrorMessage());
        } else {
            
$pageTypes PageType::getListByDefaultPageTemplate($pTemplateID);
            if (
count($pageTypes)) {
                
$handles = array();
                foreach (
$pageTypes as $pt) {
                    
$handles[] = $pt->getPageTypeHandle();
                }
                
$this->set('message't(
                    
"You cannot delete a template that is set as the default for any of the page types. " 
                    
"Please change the default template for the following page types first: %s.",
                    
implode(", "$handles)
                ));
            } else {
                
$pt PageTemplate::getByID($pTemplateID);
                if (
is_object($pt)) {
                    
$pt->delete();
                    
$this->redirect("/dashboard/pages/templates""page_template_deleted");
                } else {
                    
$this->redirect("/dashboard/pages/templates");
                }
            }
        }
        
$this->action 'edit';
        
$this->edit($pTemplateID);
    }

    public function 
edit($pTemplateID false)
    {
        
$this->set("icons"PageTemplate::getIcons());
        
$template PageTemplate::getByID($pTemplateID);
        if (!
is_object($template)) {
            throw new 
Exception(t('Invalid page template'));
        }
        
$this->set('template'$template);
    }

    public function 
page_template_added()
    {
        
$this->set('success't('Page template added successfully.'));
        
$this->view();
    }

    public function 
page_template_deleted()
    {
        
$this->set('success't('Page template deleted successfully.'));
        
$this->view();
    }

    public function 
page_template_updated()
    {
        
$this->set('success't('Page template updated successfully.'));
        
$this->view();
    }

    public function 
update()
    {
        
$valt Core::make('helper/validation/token');
        
$pt PageTemplate::getByID($_REQUEST['pTemplateID']);
        
$pTemplateName $_POST['pTemplateName'];
        
$pTemplateHandle $_POST['pTemplateHandle'];
        
$pTemplateIcon $_POST['pTemplateIcon'];
        
$vs Core::make('helper/validation/strings');

        if (!
is_object($pt)) {
            
$this->error->add(t('Invalid page template object.'));
        }

        if (!
$pTemplateHandle) {
            
$this->error->add(t("Handle required."));
        } elseif (!
$vs->handle($pTemplateHandle)) {
            
$this->error->add(t('Handles must contain only letters, numbers or the underscore symbol.'));
        }

        if (!
$pTemplateName) {
            
$this->error->add(t("Name required."));
        } elseif (
preg_match('/[<>;{}?"`]/i'$pTemplateName)) {
            
$this->error->add(t('Invalid characters in page template name.'));
        }

        if (!
$valt->validate('update_page_template')) {
            
$this->error->add($valt->getErrorMessage());
        }

        if (!
$this->error->has()) {
            
$pt->update($pTemplateHandle$pTemplateName$pTemplateIcon);
            
$this->redirect('/dashboard/pages/templates''page_template_updated');
        }   

        
$this->edit($this->post('pTemplateID'));
    }

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