-
Notifications
You must be signed in to change notification settings - Fork 626
/
SectionRecord.php
86 lines (79 loc) · 2.05 KB
/
SectionRecord.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
namespace Craft;
/**
* Class SectionRecord
*
* @author Pixel & Tonic, Inc. <support@pixelandtonic.com>
* @copyright Copyright (c) 2014, Pixel & Tonic, Inc.
* @license http://craftcms.com/license Craft License Agreement
* @see http://craftcms.com
* @package craft.app.records
* @since 1.0
*/
class SectionRecord extends BaseRecord
{
// Public Methods
// =========================================================================
/**
* @inheritDoc BaseRecord::getTableName()
*
* @return string
*/
public function getTableName()
{
return 'sections';
}
/**
* @inheritDoc BaseRecord::defineRelations()
*
* @return array
*/
public function defineRelations()
{
return array(
'locales' => array(static::HAS_MANY, 'SectionLocaleRecord', 'sectionId'),
'structure' => array(static::BELONGS_TO, 'StructureRecord', 'onDelete' => static::SET_NULL),
);
}
/**
* @inheritDoc BaseRecord::defineIndexes()
*
* @return array
*/
public function defineIndexes()
{
return array(
array('columns' => array('name'), 'unique' => true),
array('columns' => array('handle'), 'unique' => true),
);
}
/**
* @inheritDoc BaseRecord::scopes()
*
* @return array
*/
public function scopes()
{
return array(
'ordered' => array('order' => 'name'),
);
}
// Protected Methods
// =========================================================================
/**
* @inheritDoc BaseRecord::defineAttributes()
*
* @return array
*/
protected function defineAttributes()
{
return array(
'name' => array(AttributeType::Name, 'required' => true),
'handle' => array(AttributeType::Handle, 'required' => true),
'type' => array(AttributeType::Enum, 'values' => array(SectionType::Single, SectionType::Channel, SectionType::Structure), 'default' => SectionType::Channel, 'required' => true),
'hasUrls' => array(AttributeType::Bool, 'default' => true),
'template' => AttributeType::Template,
'enableVersioning' => AttributeType::Bool,
);
}
}