Revision 469 (by ahitrov, 2014/12/24 13:57:26) |
Moving Contenido to Apache 2
|
<%args>
$SETS => undef
$field => undef
$default=> undef
$object => undef
$prop => undef
</%args>
<%init>
return undef unless defined $SETS and defined $field;
#use vars qw($keeper);
# --------------------------------------------------------------------------------------
# ���������� ����� ��������
my $BINARY = $default;
if ($SETS->{$field} || $SETS->{"$field.ext_url"}) {
my $upload;
if ( $SETS->{$field} ) {
$upload = $r->upload($field);
} elsif ( $SETS->{"$field.ext_url"} && $SETS->{"$field.ext_url"} =~ /^(http|https|ftp):\/\/.*/ ) {
$upload = $SETS->{"$field.ext_url"};
}
if ($upload) {
my $BIN = $object->_store_binary( $upload, attr => $prop->{attr} );
if ( ref $BIN eq 'HASH' && exists $BIN->{filename} ) {
$object->_delete_binary( $default );
%$BINARY = %$BIN;
}
} else {
warn 'ERROR in incoming POST form: "'.$field.' is not file upload (value: "'.$SETS->{$field}.'")';
}
}
# �������������� ���� - ����� ���, ��� ������...
my $pattern = "^".$field.q|\.(.*)$|;
foreach my $localfield (keys(%{ $SETS })) {
if ($localfield =~ /$pattern/) {
my $imagefield = $1;
$BINARY->{$imagefield} = $m->comp("/contenido/components/filter.msn", str => $SETS->{$localfield});
}
}
return $BINARY;
</%init>
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.