Revision 469 (by ahitrov, 2014/12/24 13:57:26) Moving Contenido to Apache 2

<%init>
	use POSIX qw(strftime);

        #force refresh state... todo add ->refresh method to Project.pm
        $project->restore($keeper, 1);

	my $context = $m->comp('/contenido/components/context.msn');

	my $set_context_name = 'set_context';
	if ($ARGS{$set_context_name} eq 'profile-admin' && !$user->check_group(1))
	{
		$m->clear_buffer;
		$m->abort(403);
	}

	if (exists $ARGS{$set_context_name})
	{
		map {
			my ($n, $v) = split /-/;
			$m->comp('/contenido/components/context.msn', name => $n, value => $v);
		} split('/', $ARGS{$set_context_name});
	}
	my $unset_context_name = 'unset_context';
	if (exists $ARGS{$unset_context_name})
	{
		map {
			$m->comp('/contenido/components/context.msn', name => $_, delete => 1);
		} split('/', $ARGS{$unset_context_name});
	}

	## Selected profile, actually
	$request->{tab} = {};

	## Default for 'profile'
	if (! (exists($context->{profile}) && (length($context->{profile}) > 0)))
	{
		$m->comp('/contenido/components/context.msn', name => 'profile', value => 'rubricator');
	}
	my $profile = $context->{profile} if exists $context->{profile};

	if (length $profile > 0)
	{
		my $toopi = $project->tabs();
		if (ref($toopi) && exists($toopi->{$profile}))
		{
			$request->{tab} = $toopi->{$profile};
		}
	}
	$m->call_next();

</%init>

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.