Класс Field
Объект $Field:
Объект «Поле таблицы»
Исходный код
class Field extends \Cms\Site\Base { … }
Свойства
$name
$Field->name
Имя поля
Исходный код
var $name;
$title
$Field->title
Название поля
Исходный код
var $title;
$table
$Field->table
Таблица
Исходный код
var $table;
$enable
$Field->enable
Поле включено
Исходный код
var $enable;
$primary
$Field->primary
Поле является первичным ключом
Исходный код
var $primary;
$unique
$Field->unique
Поле является уникальным индексом
Исходный код
var $unique;
$index
$Field->index
Поле содержит индекс
Исходный код
var $index;
$root
$Field->root
Поле является системным
Исходный код
var $root;
$site
$Field->site
Поле является локальным
Исходный код
var $site;
$type
$Field->type
Тип поля
Исходный код
var $type;
$length
$Field->length
Длина поля
Исходный код
var $length;
$length2
$Field->length2
Длина поля 2.
Исходный код
var $length2;
$null
$Field->null
Поле может быть
NULL
Исходный код
var $null;
$default
$Field->default
Значение по умолчанию
Исходный код
var $default;
$data
$Field->data = array();
Информация о поле
Исходный код
var $data = array();
Методы
__construct()
new Field($table=null, $name=null);
Исходный код
function __construct($table = null, $name = null) {
$this->table = $table;
$this->name = $this->data['name'] = $name;
}
get()
$Field->get($key, $default=null);
Исходный код
function get($key, $default = null) {
return isset($this->$key) ? $this->$key : $default;
}
set()
$Field->set($key, $value);
Исходный код
function set($key, $value) {
if ($key[0] === '_' || $key === 'root' || $key === 'site' || $key === 'table') $this->$key = $value;
else $this->$key = $this->data[$key] = $value;
if ($key === 'enable') if ($Table = $this->loadTable()) $Table->resetEnabledFieldList();
}
getName()
$Field->getName();
Исходный код
function getName() {
return $this->name;
}
getType()
$Field->getType();
Исходный код
function getType() {
return $this->type;
}
getTitle()
$Field->getTitle();
Исходный код
function getTitle() {
return $this->title ? $this->title : $this->name;
}
displayTitle()
$Field->displayTitle();
Исходный код
function displayTitle() {
return htmlspecialchars($this->getTitle());
}
getTable()
$Field->getTable();
Исходный код
function getTable() {
return $this->table;
}
loadTable()
$Field->loadTable();
Исходный код
function loadTable() {
if ($table = $this->getTable()) {
return $this->Main()->Storage()->getTable($table);
}
}
isEnabled()
$Field->isEnabled();
Исходный код
function isEnabled() {
return $this->enable ? true : false;
}
isPrimary()
$Field->isPrimary();
Исходный код
function isPrimary() {
return $this->primary ? true : false;
}
isUnique()
$Field->isUnique();
Исходный код
function isUnique() {
return $this->unique ? true : false;
}
isIndex()
$Field->isIndex();
Исходный код
function isIndex() {
return $this->index ? true : false;
}
isRoot()
$Field->isRoot();
Исходный код
function isRoot() {
return $this->root ? true : false;
}
isSite()
$Field->isSite();
Исходный код
function isSite() {
return $this->site ? true : false;
}
getLength()
$Field->getLength();
Исходный код
function getLength() {
return $this->length;
}
getLength2()
$Field->getLength2();
Исходный код
function getLength2() {
return $this->length2;
}
isNull()
$Field->isNull();
Исходный код
function isNull() {
return $this->null ? true : false;
}
getDefault()
$Field->getDefault();
Исходный код
function getDefault() {
return $this->default;
}
addFieldData()
$Field->addFieldData(array $fieldData, $override=true);
Исходный код
function addFieldData(array $fieldData, $override = true) {
foreach ($fieldData as $k => $v) {
if ($k === 'table') {
$this->$k = $v;
} elseif ($override || !isset($this->$k)) {
$this->set($k, $v);
}
}
}
getFieldData()
$Field->getFieldData();
Исходный код
function getFieldData() {
$r = $this->data;
$r['site'] = 'Y';
return $r;
}
defaultFieldData()
$Field->defaultFieldData();
Исходный код
function defaultFieldData() {
if ($this->getTable() === 'item') return;
$Storage = $this->Main()->Storage();
if ($Table = $Storage->getTable('item')) {
if ($Field = $Table->getField($this->getName())) {
return array(
'title' => $Field->title,
'type' => $Field->type,
'length' => $Field->length,
'length2' => $Field->length2,
'null' => $Field->null,
'default' => $Field->default,
'primary' => $Field->primary,
'unique' => $Field->unique,
'index' => $Field->index,
);
}
}
}
getPanel()
$Field->getPanel();
Исходный код
function getPanel() {
return array(
'edit' => array(
'href' => $this->Main()->href('/admin/storage') . '?a=field&table=' . rawurldecode($this->getTable()) . '&field=' . rawurlencode($this->getName()),
'image' => 'edit',
),
);
}
displayPageForm()
$Field->displayPageForm($form='data_field');
Исходный код
function displayPageForm($form = 'data_field') {
if (!isset($form)) return;
$Main = $this->Main();
$Form = $this->Form();
$Field = $this;
$document = $Form->load($form, $Field);
if ($Form->store($document)) {
if ($_POST['delete']) {
if ($Field->delete()) {
return $Main->href('/admin/storage') . '?table=' . rawurlencode($this->getTable());
} else {
$Form->addError($this->getError());
}
} else {
if ($Field->save()) {
return $Field->href();
} else {
$Form->addError($this->getError());
}
}
}
return $document;
}
href()
$Field->href();
Исходный код
function href() {
return $this->Main()->href('/admin/storage') . '?table=' . rawurlencode($this->getTable()) . '&field=' . rawurlencode($this->getName());
}
save()
$Field->save();
Исходный код
function save() {
$this->set('site', 'Y');
if ($Table = $this->loadTable()) {
$Table->addField($this);
if ($Table->save()) {
return true;
} else {
$this->addError($Table->getError());
}
}
}
delete()
$Field->delete();
Исходный код
function delete() {
if ($Table = $this->loadTable()) {
$Table->deleteField($this);
if ($this->deleteData()) {
if ($Table->save()) {
return true;
} else {
$this->addError($Table->getError());
}
}
}
}
deleteData()
$Field->deleteData();
Исходный код
function deleteData() {
$Data = $this->Data();
if ($Data->tableFieldExists($this)) {
if ($Data->tableAlterFieldDrop($this)) {
return true;
} else {
$this->addError($Data->getError());
}
} else {
return true;
}
}