Revision 296 (by ahitrov, 2013/03/26 17:59:01) |
Promosite (anthill) project source
|
<doc id="<% $document->id %>">
% if ( ref $IMAGE && exists $IMAGE->{filename} ) {
% my $img_dir = $state->images_directory;
% $img_dir =~ s/\/$//;
<img src="<% $img_dir.$IMAGE->{filename} %>"/>
% }
<text><% $document->name %></text>
</doc>
<%args>
$store => undef
</%args>
<%init>
my $prj = $request->{project};
my $profile = $request->{project_profile};
my $root = $request->{project_section};
unless ( $store ) {
my %cookies = Apache::Cookie->fetch;
my $cookie = $cookies{card_id};
# Вытаскиваем SID из куки
$store = $cookie->value() if $cookie;
}
my $document;
my $IMAGE;
warn Dumper(\%ARGS);
if ( $store ) {
$document = $keeper->get_document_by_id ( $store,
class => 'promosuite::Postcard',
);
unless ( ref $document ) {
$document = promosuite::Postcard->new ($keeper);
$document->sections($root->id);
$document->status(1);
}
if ( $ARGS{picture} ) {
my @properties = $document->structure();
my ($prop) = grep { $_->{attr} eq 'picture' } @properties;
my $IMG = $document->get_image ('picture');
$IMAGE = $m->comp ('/subs/set_image.msn',
field => 'picture',
object => $document,
prop => $prop,
default => $IMG,
SETS => \%ARGS,
);
if (ref $IMAGE && exists($IMAGE->{filename})) {
local $Data::Dumper::Indent = 0;
$document->picture( Data::Dumper::Dumper($IMAGE) );
}
}
$document->store;
my $cookie = Apache::Cookie->new ($request->r(),
-name => 'card_id',
-expires=> '+7d',
-value => $document->id,
-path => '/',
);
$cookie->bake();
}
return unless ref $document && $document->id;
if ( $state->development ) {
$r->content_type('text/xml; charset=utf-8');
} else {
$r->content_type('text/xml; charset=utf-8');
}
$r->header_out ('X-Accel-Expires', 0);
</%init>
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.