Revision 484 (by ahitrov, 2015/03/05 14:31:55) UTF-8 codepage symbols conversion
<%once>

    use JSON::XS;
    use Data::Recursive::Encode;

</%once>
<%args>

        $name	=> undef
        $SETS	=> undef
	$object	=> undef

</%args>
<%init>

	return undef	unless ref($SETS);
	return undef	unless $name;
	return undef	unless $SETS->{$name};

	my ($prop) = grep { $_->{attr} eq $name } $object->structure;
	my $class = $object->class;
	my $is_extra = scalar (grep { ref $_ && $_->{attr} eq $name } $class->class_table->required_properties) ? 0 : 1;

	my $result;
	if ( $is_extra && !$prop->{serialize} ) {
		eval { $result = Data::Recursive::Encode->encode_utf8( JSON::XS->new->utf8->decode($SETS->{$name}) ) };
	} else {
		$result = $SETS->{$name};
	}
	warn "\nJSON\n";
	warn Dumper $result;
	return $result;

</%init>

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

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

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

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

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