Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/pages/types/form.php
Строк: 82
<?php
namespace ConcreteControllerSinglePageDashboardPagesTypes;
use ConcreteCorePageControllerDashboardPageController;
use Loader;
use ConcreteCorePageTypeComposerFormLayoutSetControl as PageTypeComposerFormLayoutSetControl;
use ConcreteCorePageTypeComposerFormLayoutSet as PageTypeComposerFormLayoutSet;
use View;
use PageType;
class Form extends DashboardPageController {
public function view($ptID = false, $message = false) {
$this->pagetype = PageType::getByID($ptID);
if (!$this->pagetype) {
$this->redirect('/dashboard/pages/types');
}
$cmp = new Permissions($this->pagetype);
if (!$cmp->canEditPageType()) {
throw new Exception(t('You do not have access to edit this page type.'));
}
switch($message) {
case 'layout_set_added':
$this->set('success', t('Form layout set added.'));
break;
case 'layout_set_deleted':
$this->set('success', t('Form layout set deleted.'));
break;
case 'layout_set_updated':
$this->set('success', t('Form layout set updated.'));
break;
}
$this->set('pagetype', $this->pagetype);
$this->set('sets', PageTypeComposerFormLayoutSet::getList($this->pagetype));
}
public function delete_set($ptComposerFormLayoutSetID = false) {
$set = PageTypeComposerFormLayoutSet::getByID($ptComposerFormLayoutSetID);
if (!is_object($set)) {
$this->redirect('/dashboard/pages/types');
}
$this->view($set->getPageTypeID());
if (!$this->token->validate('delete_set')) {
$this->error->add(t($this->token->getErrorMessage()));
}
if (!$this->error->has()) {
$set->delete();
$this->redirect('/dashboard/pages/types/form', $set->getPageTypeID(), 'layout_set_deleted');
}
}
public function update_set($ptComposerFormLayoutSetID = false) {
$set = PageTypeComposerFormLayoutSet::getByID($ptComposerFormLayoutSetID);
if (!is_object($set)) {
$this->redirect('/dashboard/pages/types');
}
$this->view($set->getPageTypeID());
$sec = Loader::helper('security');
$name = $sec->sanitizeString($this->post('ptComposerFormLayoutSetName'));
$description = $sec->sanitizeString($this->post('ptComposerFormLayoutSetDescription'));
if (!$this->token->validate('update_set')) {
$this->error->add(t($this->token->getErrorMessage()));
}
if (!$this->error->has()) {
$set->updateFormLayoutSetName($name);
$set->updateFormLayoutSetDescription($description);
$this->redirect('/dashboard/pages/types/form', $set->getPageTypeID(), 'layout_set_updated');
}
}
public function delete_set_control() {
$control = PageTypeComposerFormLayoutSetControl::getByID($this->post('ptComposerFormLayoutSetControlID'));
if (is_object($control)) {
$set = $control->getPageTypeComposerFormLayoutSetObject();
$pt = $set->getPageTypeObject();
$this->view($pt->getPageTypeID());
if ($this->token->validate('delete_set_control', $_POST['token'])) {
$control->delete();
}
}
exit;
}
public function add_set($ptID = false) {
$this->view($ptID);
$sec = Loader::helper('security');
$name = $sec->sanitizeString($this->post('ptComposerFormLayoutSetName'));
$description = $sec->sanitizeString($this->post('ptComposerFormLayoutSetDescription'));
if ($this->token->validate('add_set')) {
$set = $this->pagetype->addPageTypeComposerFormLayoutSet($name,$description);
$this->redirect('/dashboard/pages/types/form', $this->pagetype->getPageTypeID(), 'layout_set_added');
}
}
public function update_set_control_display_order() {
$fs = PageTypeComposerFormLayoutSet::getByID($_POST['ptComposerFormLayoutSetID']);
if (is_object($fs)) {
$pt = $fs->getPageTypeObject();
$this->view($pt->getPageTypeID());
if ($this->token->validate('update_set_control_display_order', $_POST['token'])) {
$displayOrder = 0;
foreach($this->post('ptComposerFormLayoutSetControlID') as $ptComposerFormLayoutSetControlID) {
$control = PageTypeComposerFormLayoutSetControl::getByID($ptComposerFormLayoutSetControlID);
if (is_object($control)) {
$control->updateFormLayoutSetControlDisplayOrder($displayOrder);
$displayOrder++;
}
}
}
}
exit;
}
public function update_set_display_order() {
$this->view($this->post('ptID'));
if ($this->token->validate('update_set_display_order', $_POST['token'])) {
$displayOrder = 0;
foreach($this->post('ptComposerFormLayoutSetID') as $ptComposerFormLayoutSetID) {
$set = PageTypeComposerFormLayoutSet::getByID($ptComposerFormLayoutSetID);
if (is_object($set)) {
$set->updateFormLayoutSetDisplayOrder($displayOrder);
$displayOrder++;
}
}
}
exit;
}
}