Revision 3 (by ahitrov@rambler.ru, 2010/03/24 15:19:32) The CORE
% if ( $error ) {
	<font color="red"><% $error %></font>
% } else {
%	foreach my $id ( @values ) {
%		if ( ref $id eq 'ARRAY' && scalar @$id == 2 ) {
%			my $checked = exists $ids{$id->[0]} ? ' checked' : ''; 
<input <% $prop->{readonly} ? 'readonly ' : '' %>type="checkbox" name="<% $name %>_<% $id->[0] %>" value="<% $value %>" <% $checked %>><% $id->[1] %><br>
%		} else {
%			my $checked = exists $ids{$id} ? ' checked' : ''; 
<input <% $prop->{readonly} ? 'readonly ' : '' %>type="checkbox" name="<% $name %>_<% $id %>" value="<% $value %>" <% $checked %>><% $id %><br>
%		}
%	}
% }
<%args>

	$object
	$name	=> undef
	$value	=> 1
	$check	=> undef
	$prop	=> {}

</%args>
<%init>

  my ($objects, $error);

  # ���� ��� �������� � ���� ���� integer[] �� ��� �������� ������, ���� � data, �� ������ �� ������.
  # ��������� �����
  my @ids = ref($object->$name) eq 'ARRAY' ? @{ $object->$name } : $object->$name;
  my %ids = map { $_ => 1 } @ids;
  my @values = exists $prop->{values} && ref $prop->{values} eq 'ARRAY' ? @{ $prop->{values} } :
		exists $prop->{cases} && ref $prop->{cases} eq 'ARRAY' ? @{ $prop->{cases} } : ();

  $error = '�� ��������� ����� �������� ��� ����'	unless @values;

</%init>