[set page_title]Edit Page Component[/set] [set ui_class]Design[/set] [set help_name]page.main[/set] [set icon_name]admin/icon_pages.gif[/set] @_UI_STD_HEAD_@
[perl tables="__UI_COMPONENT_TABLE__ __UI_META_TABLE__"] my $ref; my $ref_in_page; my $t_name = ''; my $cdb = $Db{__UI_COMPONENT_TABLE__}; my $c_name; if($c_name = $Session->{arg}) { if($cdb->record_exists($c_name)) { } else { } $CGI->{ui_template} = $Tag->filter('filesafe', $CGI->{ui_template}); my ($ary) = $Tag->read_ui_template($CGI->{ui_template}); $ref = shift @$ary || {}; $t_name = $CGI->{ui_template}; $t_desc = $ref->{ui_template_description} || 'none'; } my @choices = split /\s*\0\s*/, $CGI->{ui_page}; my $page; for(@choices) { next if ! $_; $page = $_; $page .= $Config->{HTMLsuffix} if $page !~ /$Config->{HTMLsuffix}$/; $page = "pages/$page" if $page !~ m(^pages/); last; } my $ary; my $current = $Tag->file($page); # This call returns an array of hashes if exists if($current) { ($ary) = $Tag->read_ui_template($page); if(ref $ary) { $ref_in_page = shift (@$ary); } } if(! $ref and $ref_in_page) { $ref = $ref_in_page; } elsif($ref_in_page) { for(keys %$ref_in_page) { $ref->{$_} = $ref_in_page->{$_}; } } else { $ref = {} if ! $ref; $current !~ m{(.*)}is and $current = "$current"; } $t_name = $ref->{ui_template_name} || 'None' if ! $t_name; $t_desc = $ref->{ui_template_description} || 'n/a' if ! $t_desc; my @def; foreach $e (keys %$ref) { my $v = $ref->{$e}; if(ref $v) { for(keys %$v) { push @def, "$e: $_ : $v->{$_}"; } } else { push @def, "$e: $v"; } } my $def_string = join "\n", @def; if($def_string) { $def_string =~ s/"/"/g; } my $r; #Log("ui_control_element=$ref->{ui_control_element}"); if ($r = $ref->{ui_control_element} and ref($r)) { my $widget; for(keys %$r) { #Log("r key $_"); my ($set) = $current =~ m{\[set\s+$_\](.*?)\[/set\]}; my $t_set = $r->{$_}; if($t_set =~ /=.*,.*=/) { $widget = $Tag->widget( { name => "ui_control_$_", passed => $t_set, default => $set, }); } else { my $val = $set || $t_set; $val =~ s/"/"/g; $widget = qq{}; } my $desc = $ref->{ui_control_description}{$_} || $_; push @controls, [ $desc, $widget ]; } } my $out = < EOF my $table_done; for(@controls) { $out .= < EOF $out .= qq{}; } if($current) { $current =~ m{(.*)}is; $content = $1 || ''; } $content =~ s/{ui_template_layout} = 'UI_CONTENT' if ! $ref->{ui_template_layout}; $out .= < EOF $out .= < EOF return $out; [/perl]
Page file $page
Template name $t_name
Template description $t_desc
Template sequence
UI_CONTENT is the content portion(s), all others refer to Knar elements.
Control elements
$_->[0]$_->[1]
Content
[set Preview] mv_nextpage=__UI_BASE__/page_preview [/set] [set Save] mv_nextpage=__UI_BASE__/page_save [/set] [set Cancel] mv_nextpage=__UI_BASE__/page mv_todo=back [/set]
@_UI_STD_FOOTER_@