Revision 3 (by ahitrov@rambler.ru, 2010/03/24 15:19:32) The CORE
<select <% $multiple %> <% $size %> <% $onChange %> name="<% $name %>" class="selects" style="<% $width %><% $height %><% $style %>">

% while (my ($key, $value) = splice(@local_values, 0, 2))
% {
%	my $selected = (scalar grep { $_ eq $key } @local_checks ) ? ' selected' : '';
%	next unless defined $key;
<option value="<% $key %>"<% $selected %>><% $value %></option>
% }

</select>
<%args>

	$name => undef
	$values => []
	$check => undef
	$multiple => undef
	$size => undef
	$onChange => undef

	$width => undef
	$height => undef

	$style => undef

</%args>
<%init>

	my @local_values = @{ $values };			# ��������, ����� �� ����������...
	my @local_checks = ();
	if (ref($check) eq 'ARRAY')
	{
		@local_checks = @{ $check };
	} elsif (defined($check)) {
		@local_checks = ($check);
	}

	$size = ($size) ? " size=\"$size\"" : '';
	$width = ($width) ? "width:$width;" : '';
	$height = ($height) ? "height:$height;" : '';
	$multiple = ($multiple) ? ' multiple' : '';
	$onChange = ($onChange) ? " onChange=\"$onChange\"" : '';

</%init>

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

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

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

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

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