Line #
Revision
Author
1
741
ahitrov
package SQL::MailQueueTable;
2
3
use strict;
4
use base 'SQL::ProtoTable';
5
6
sub db_table
7
{
8
return 'mailqueue';
9
}
10
11
sub db_id_sequence {
12
return 'mailqueue_id_seq';
13
}
14
15
sub available_filters {
16
my @available_filters = qw(
17
_class_filter
18
_status_filter
19
_in_id_filter
20
_id_filter
21
_name_filter
22
_class_excludes_filter
23
_sfilter_filter
24
_datetime_filter
25
_date_equal_filter
26
_date_filter
27
_previous_days_filter
28
_prev_to_filter
29
_next_to_filter
30
_s_filter
31
32
_excludes_filter
33
_link_filter
34
);
35
return \@available_filters;
36
}
37
38
# ----------------------------------------------------------------------------
39
# Свойства храним в массивах, потому что порядок важен!
40
# Это общие свойства - одинаковые для всех документов.
41
#
42
# attr - обязательный параметр, название атрибута;
43
# type - тип аттрибута, требуется для отображдения;
44
# rusname - русское название, опять же требуется для отображения;
45
# hidden - равен 1, когда
46
# readonly - инициализации при записи только без изменения в дальнейшем
47
# db_field - поле в таблице
48
# default - значение по умолчанию (поле всегда имеет это значение)
49
# ----------------------------------------------------------------------------
50
sub required_properties
51
{
52
my $self = shift;
53
my $id_sequence = $self->db_id_sequence();
54
return (
55
{ # Идентификатор документа, сквозной по всем типам...
56
'attr' => 'id',
57
'type' => 'integer',
58
'rusname' => 'Идентификатор документа',
59
'hidden' => 1,
60
'readonly' => 1,
61
'auto' => 1,
62
'db_field' => 'id',
63
'db_type' => 'integer',
64
'db_opts' => "not null default nextval('public.$id_sequence'::text)",
65
},
66
{ # Класс документа...
67
'attr' => 'class',
68
'type' => 'string',
69
'rusname' => 'Класс документа',
70
'column' => 3,
71
'hidden' => 1,
72
'readonly' => 1,
73
'db_field' => 'class',
74
'db_type' => 'varchar(48)',
75
'db_opts' => 'not null',
76
},
77
{
78
'attr' => 'name',
79
'type' => 'string',
80
'rusname' => 'Получатель',
81
'column' => 3,
82
'db_field' => 'name',
83
'db_type' => 'varchar(255)',
84
},
85
{
86
'attr' => 'subject',
87
'type' => 'string',
88
'rusname' => 'Тема',
89
'column' => 4,
90
'db_field' => 'subject',
91
'db_type' => 'varchar(255)',
92
},
93
{ # Время создания документа, служебное поле...
94
'attr' => 'ctime',
95
'type' => 'datetime',
96
'rusname' => 'Время создания',
97
'readonly' => 1,
98
'auto' => 1,
99
'hidden' => 1,
100
'db_field' => 'ctime',
101
'db_type' => 'timestamp',
102
'db_opts' => 'not null default now()',
103
'default' => 'CURRENT_TIMESTAMP',
104
},
105
{ # Время модификации документа, служебное поле...
106
'attr' => 'mtime',
107
'type' => 'datetime',
108
'rusname' => 'Время модификации',
109
'hidden' => 1,
110
'auto' => 1,
111
'db_field' => 'mtime',
112
'db_type' => 'timestamp',
113
'db_opts' => 'not null default now()',
114
'default' => 'CURRENT_TIMESTAMP',
115
},
116
{ # Дата и время отправки...
117
'attr' => 'dtime',
118
'type' => 'datetime',
119
'rusname' => 'Отправить',
120
'column' => 1,
121
'db_field' => 'dtime',
122
'db_type' => 'timestamp',
123
'db_opts' => 'not null default now()',
124
'default' => 'CURRENT_TIMESTAMP',
125
},
126
{
127
'attr' => 'etime',
128
'type' => 'datetime',
129
'rusname' => 'Отправлено',
130
'column' => 2,
131
'allow_null' => 1,
132
'db_field' => 'etime',
133
'db_type' => 'timestamp',
134
},
135
{ # Массив секций, обрабатывается специальным образом...
136
'attr' => 'sections',
137
'type' => 'sections_list',
138
'rusname' => 'Секции',
139
'hidden' => 1,
140
'db_field' => 'sections',
141
'db_type' => 'integer',
142
},
143
{
144
'attr' => 'status',
145
'type' => 'status',
146
'rusname' => 'Статус',
147
'db_field' => 'status',
148
'db_type' => 'integer',
149
},
150
);
151
}
152
153
752
ahitrov
154
sub _s_filter {
155
my ($self, %opts)=@_;
156
return undef unless ( exists $opts{s} );
157
return &SQL::Common::_generic_int_filter('d.sections', $opts{s});
158
}
159
160
741
ahitrov
1;
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.