Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/files/attributes.php
Строк: 57
<?php
namespace ConcreteControllerSinglePageDashboardFiles;
use ConcreteCorePageControllerDashboardPageController;
use ConcreteCoreAttributeType as AttributeType;
use ConcreteCoreAttributeKeyCategory as AttributeKeyCategory;
use FileAttributeKey;
use Exception;
use Loader;
class Attributes extends DashboardPageController {
public $helpers = array('form');
public function delete($akID, $token = null){
try {
$ak = FileAttributeKey::getByID($akID);
if(!($ak instanceof FileAttributeKey)) {
throw new Exception(t('Invalid attribute ID.'));
}
$valt = Loader::helper('validation/token');
if (!$valt->validate('delete_attribute', $token)) {
throw new Exception($valt->getErrorMessage());
}
$ak->delete();
$this->redirect("/dashboard/files/attributes", 'attribute_deleted');
} catch (Exception $e) {
$this->set('error', $e);
}
}
public function select_type() {
$atID = $this->request('atID');
$at = AttributeType::getByID($atID);
$this->set('type', $at);
}
public function view() {
$attribs = FileAttributeKey::getList();
$this->set('attribs', $attribs);
}
public function on_start() {
parent::on_start();
$this->set('category', AttributeKeyCategory::getByHandle('file'));
$otypes = AttributeType::getAttributeTypeList('file');
$types = array();
foreach($otypes as $at) {
$types[$at->getAttributeTypeID()] = $at->getAttributeTypeDisplayName();
}
$this->set('types', $types);
}
public function add() {
$this->select_type();
$type = $this->get('type');
$cnt = $type->getController();
$this->error = $cnt->validateKey($this->post());
if (!$this->error->has()) {
$type = AttributeType::getByID($this->post('atID'));
$ak = FileAttributeKey::add($type, $this->post());
$this->redirect('/dashboard/files/attributes/', 'attribute_created');
}
}
public function attribute_deleted() {
$this->set('message', t('File Attribute Deleted.'));
}
public function attribute_created() {
$this->set('message', t('File Attribute Created.'));
}
public function attribute_updated() {
$this->set('message', t('File Attribute Updated.'));
}
public function edit($akID = 0) {
if ($this->post('akID')) {
$akID = $this->post('akID');
}
$key = FileAttributeKey::getByID($akID);
if (!is_object($key) || $key->isAttributeKeyInternal()) {
$this->redirect('/dashboard/files/attributes');
}
$type = $key->getAttributeType();
$this->set('key', $key);
$this->set('type', $type);
if ($this->isPost()) {
$cnt = $type->getController();
$cnt->setAttributeKey($key);
$e = $cnt->validateKey($this->post());
if ($e->has()) {
$this->set('error', $e);
} else {
$type = AttributeType::getByID($this->post('atID'));
$key->update($this->post());
$this->redirect('/dashboard/files/attributes', 'attribute_updated');
}
}
}
}