Revision 53
Date:
2010/08/26 16:58:19
Author:
ahitrov@rambler.ru
Revision Log:
Избавляемся от одного противного артефакта
Files:
Legend:
Added
Removed
Modified
utf8/core/comps/contenido/components/set_properties.msn
1
1
<%ARGS>
2
2
3
$object => undef
4
$SETS => undef
3
$object => undef
4
$SETS => undef
5
5
6
6
</%ARGS>
7
7
<%INIT>
8
use Contenido::File;
8
9
use Contenido::File;
9
10
use vars qw($keeper $request );
10
11
11
12
$request->{local_codepage} = 'UTF8';
12
$request->{local_codepage} = 'WIN' if Convert::Cyrillic::cstocs('WIN', 'UTF8', $SETS->{control_charset}) eq 'Контроль';
13
$request->{local_codepage} = 'KOI8' if Convert::Cyrillic::cstocs('KOI8', 'UTF8', $SETS->{control_charset}) eq 'Контроль';
13
$request->{local_codepage} = 'WIN' if Convert::Cyrillic::cstocs('WIN', 'UTF8', $SETS->{control_charset}) eq 'Контроль';
14
$request->{local_codepage} = 'KOI8' if Convert::Cyrillic::cstocs('KOI8', 'UTF8', $SETS->{control_charset}) eq 'Контроль';
14
15
15
16
warn "Contenido Debug: Форма для редактирования пришла в кодировке ".$request->{local_codepage}."\n" if ($state->debug());
16
17
17
18
my @properties = $object->structure();
18
19
for (0..$#properties)
19
20
{
20
my $prop = $properties[$_];
21
my $name = $prop->{attr};
22
my $type = $prop->{type};
21
my $prop = $properties[$_];
22
my $name = $prop->{attr};
23
my $type = $prop->{type};
23
24
24
next if ($name eq 'sections');
25
next if ($name eq 'id');
25
next if ($name eq 'sections');
26
next if ($name eq 'id');
26
27
27
my $component = '/contenido/components/outputs/'.$prop->{attr}.'.msn';
28
if ($m->comp_exists($component)) {
29
$object->{$name} = $m->comp($component, SETS => $SETS, name => $name, object => $object );
30
} elsif ($m->comp_exists("/contenido/components/outputs/$type.msn")) {
31
$object->{$name} = $m->comp("/contenido/components/outputs/$type.msn", SETS => $SETS, name => $name, object => $object );
32
} elsif ( $prop->{type} eq 'image' )
33
{
28
if ($m->comp_exists("/contenido/components/outputs/$type.msn")) {
29
$object->{$name} = $m->comp("/contenido/components/outputs/$type.msn", SETS => $SETS, name => $name, object => $object );
30
31
} elsif ( $prop->{type} eq 'image' ) {
34
32
# --------------------------------------------------------------------------------------
35
33
# Добавление одной, отдельно стоящей картинки...
36
34
…
…
59
57
$object->{$name} = Data::Dumper::Dumper($IMAGE);
60
58
}
61
59
}
62
}
63
elsif ($prop->{type} =~ /^images/)
64
{
60
61
} elsif ($prop->{type} =~ /^images/) {
65
62
# --------------------------------------------------------------------------------------
66
63
# А вот это уже сложнее - составление блока из всех картинок...
67
64
…
…
128
125
$object->{$name} = Data::Dumper::Dumper($IMAGES);
129
126
}
130
127
131
}
132
elsif ( $prop->{type} eq 'multimedia' )
133
{
128
} elsif ( $prop->{type} eq 'multimedia' ) {
134
129
# --------------------------------------------------------------------------------------
135
130
# Добавление одного объект Мультимедиа
136
131
…
…
154
149
}
155
150
}
156
151
157
}
158
elsif ( $prop->{type} eq 'multimedia_new' )
159
{
152
} elsif ( $prop->{type} eq 'multimedia_new' ) {
160
153
# --------------------------------------------------------------------------------------
161
154
# Добавление одного объект Мультимедиа
162
155
…
…
180
173
}
181
174
}
182
175
183
}
184
elsif ( $prop->{type} eq 'audio' )
185
{
176
} elsif ( $prop->{type} eq 'audio' ) {
186
177
# --------------------------------------------------------------------------------------
187
178
# Добавление одного объект Мультимедиа
188
179
…
…
210
201
}
211
202
}
212
203
204
} else {
205
$object->{$name} = $m->comp('/contenido/components/filter.msn', str => $SETS->{$name} );
213
206
}
214
else
215
{
216
$object->{$name} = $m->comp('/contenido/components/filter.msn', str => $SETS->{$name} );
217
}
218
207
219
208
}
220
209
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.