[set page_title]Layout Editor[/set] [set ui_class]Design[/set] [set page_banner]Layout Editor: Organize your site into categories[/set] [set page_perm]layout=e[/set] [set help_name]layout.edit[/set] [set icon_name]admin/icon_pages.gif[/set] [seti ui_body_extra][/seti] @_UI_STD_HEAD_@ [if scratch ui_message]
[scratch ui_message][set ui_message][/set]
[/if] [if scratch ui_failure] Failed: [scratch ui_failure][set ui_failure][/set]
[/if] [if cgi newarea] [elsif cgi newcat] [/elsif] [elsif cgi setarea] [/elsif] [elsif cgi setcat] [/elsif] [/if] [set Delete section] [/set] [if value area] [then]
Area -- section:


[button text="Section properties" hspace=2 vspace=5 src="@_UI_IMG_@admin/icon_pages.gif" hidetext=1] [/button] [button text="Sort section higher" src="@_UI_IMG_@admin/up.gif" hidetext=1] [flag type=write table=area] [perl tables=area] my $db = $Db{area} || return; my $curr = $db->field($CGI->{area}, 'sort'); $curr =~ s/^0+//; $curr = 1 if ! $curr || $curr < 0; $curr--; $db->set_field($CGI->{area}, 'sort', sprintf("%02d", $curr)); return; [/perl] [/button] [button text="Sort section lower" src="@_UI_IMG_@admin/down.gif" hidetext=1] [flag type=write table=area] [perl tables=area] my $db = $Db{area} || return; my $curr = $db->field($CGI->{area}, 'sort'); $curr =~ s/^0+//; $curr = 0 if ! $curr || $curr < 0; $curr++; $db->set_field($CGI->{area}, 'sort', sprintf("%02d", $curr)); return; [/perl] [/button] [button text="Create section" src="@_UI_IMG_@admin/plus.gif" hidetext=1] mv_todo=back newarea=NEW [/button] [button text="Delete section" src="@_UI_IMG_@admin/delete.gif" confirm="Are you sure you want to delete this section?" hidetext=1] [tag flag write]area[/tag] [if-mm advanced sitedesign=d] [perl tables="area"] my ($item) = $CGI->{area}; my $out; unless ($Db{area}) { Log("no site design table 'area'"); return undef; } my $name = $Db{area}->field($item, 'name'); if ($Db{area}->delete_record($item)) { $out .= "Deleted $name from area table
"; } else { $out .= "Item $item not in $_ table (or delete failed)
"; } $Scratch->{ui_message} = $out; return; [/perl] [else] [set ui_message]Not authorized to delete layout items.[/set] [/else] [/if-mm] [/button]
Contains:

[button text="Category properties" hspace=2 vspace=5 hidetext=1 src="@_UI_IMG_@admin/icon_pages.gif"][/button] [button text="Sort category higher" hidetext=1 src="@_UI_IMG_@admin/up.gif"] [flag type=write table=cat] [perl tables=cat] my $db = $Db{cat} || return; my $curr = $db->field($CGI->{cat}, 'sort'); $curr =~ s/^0+//; $curr = 1 if ! $curr || $curr < 0; $curr--; $db->set_field($CGI->{cat}, 'sort', sprintf("%02d", $curr)); return; [/perl] [/button] [button text="Sort category lower" hidetext=1 src="@_UI_IMG_@admin/down.gif"] [flag type=write table=cat] [perl tables=cat] my $db = $Db{cat} || return; my $curr = $db->field($CGI->{cat}, 'sort'); $curr =~ s/^0+//; $curr = 0 if ! $curr || $curr < 0; $curr++; $db->set_field($CGI->{cat}, 'sort', sprintf("%02d", $curr)); return; [/perl] [/button] [button text="Create category" hidetext=1 src="@_UI_IMG_@admin/plus.gif"] mv_todo=back newcat=NEW [/button] [button text="Delete category" hidetext=1 src="@_UI_IMG_@admin/delete.gif" confirm="Are you sure you want to delete this category?" ] [tag flag write]cat[/tag] mv_nextpage=@@MV_PAGE@@ [if-mm advanced sitedesign=d] [perl tables="cat"] my ($item) = $CGI->{cat}; my $out; unless ($Db{cat}) { Log("no site design table 'cat'"); return undef; } my $name = $Db{cat}->field($item, 'name'); if ($Db{cat}->delete_record($item)) { $out .= "Deleted $name from cat table
"; } else { $out .= "Item $item not in $_ table (or delete failed)
"; } $Scratch->{ui_message} = $out; return; [/perl] [else] [set ui_message]Not authorized to delete items.[/set] [/else] [/if-mm] [/button]
[set name="<--"] [/set] [button text="Move category left" hidetext=1 src="@_UI_IMG_@admin/left.gif"] [if-mm advanced layout=e] [flag type=write table=cat] [perl tables=cat] my $db = $Db{cat}; if (! $db) { Log ("No category database."); return; } my $area = $CGI->{area}; @codes = split /\0/, $CGI->{add_cat}; for(@codes) { my $curr = $db->field($_, 'sel'); if($curr) { $curr =~ s/\s+$//; $curr .= " $area"; } else { $curr = $area; } $db->set_field($_, 'sel', $curr); } return; [/perl] [/if-mm] [/button] [button text="Move category right" hidetext=1 src="@_UI_IMG_@admin/right.gif"] [if-mm advanced layout=e] [flag type=write table=cat] [perl tables=cat] my $db = $Db{cat}; if (! $db) { Log ("No category database."); return; } my $area = $CGI->{area}; @codes = split /\0/, $CGI->{cat}; my @there; foreach my $one (@codes) { my %seen; my $curr = $db->field($one, 'sel'); Log("current = $curr"); @there = grep $_ ne $area, split /[\0\s]+/, $curr; Log("now = @there"); @there = grep !$seen{$_}++, @there; $curr = join " ", @there; Log("now current = $curr"); $db->set_field($one, 'sel', join " ", @there); } return; [/perl] [/if-mm] [/button] Available categories:
[/then] [else] [/else] [/if]
[value name=mv_data_table set="area" hide=1] [perl tables="[value mv_data_table]"] my $table = $Values->{mv_data_table}; $Values->{ui_data_key_name} = $Db{$table}->config('KEY'); if ($table ne $Values->{mv_data_table}) { $Values->{mv_data_table} = $table; } $Values->{ui_data_fields} = $CGI->{ui_data_fields} || $CGI->{mv_data_fields} || $Values->{"$table:ui_data_fields"} || '' ; $Values->{ui_data_fields} =~ s/\0+/ /g; return; [/perl] [set process_ui_area] setarea=[cgi selector] [perl] my @filters = grep /^ui_filter:/, keys %$CGI; return unless @filters; foreach my $key (@filters) { my $val = delete $CGI->{$key}; $key =~ s/ui_filter://; next unless $val; next unless defined $CGI->{$key}; $CGI->{$key} = $Tag->filter($val, $CGI->{$key}, $key); } return; [/perl] [/set] [loop list="[value area]" prefix=table]
[set ui_area_type][table-data area link_type][/set] [if scratch ui_area_type eq external] [elsif scratch ui_area_type eq internal] [/elsif] [elsif scratch ui_area_type eq simple] [calc] $Values->{tab} = q{[table-data area tab]} || $Config->{ProductFiles}[0]; return; [/calc] [/elsif] [elsif scratch ui_area_type eq complex] [/elsif] [/if] [set ui_area_display][table-data area display_type][/set] [if scratch ui_area_display =~ /icon|image/] [/if]
 Section Properties
Name
Page class
Page area

Link type [display table=area column=link_type key="[value area]" js=|onChange="this.form.submit()"|]
External
Interchange page
Parameters
Table
field=column pairs
Results page
[set Create] mv_todo=back mv_nextpage=__UI_BASE__/search_wizard [/set] Complex search link
 
[calc] my $n = 4; if($Scratch->{search_page}) { $stuff = delete $Scratch->{search_page}; $stuff =~ s/.*?(['\|])(.*)\1.*/$2/s; $stuff =~ s/^\s+//mg; $stuff =~ s/\s+$//mg; } else { $stuff = q{[table-data area search]}; } if($stuff =~ /\S/) { $n = 2 + ($stuff =~ s/[\r\n]+/\n/g); } else { $stuff = '' }; return ""; [/calc]

Display type [display table=area column=display_type key="[value area]" js=|onChange="this.form.submit()"|]
Image [display table=area column=image key="[value area]" js=|onChange="this.form.submit()"|]
Image properties
Link template [display table=area column=link_template key="[value area]"]
[button text="Change area"][/button]
[/loop]
[value name=mv_data_table set="cat" hide=1] [perl tables="[value mv_data_table]"] my $table = $Values->{mv_data_table}; $Values->{ui_data_key_name} = $Db{$table}->config('KEY'); if ($table ne $Values->{mv_data_table}) { $Values->{mv_data_table} = $table; } $Values->{ui_data_fields} = $CGI->{ui_data_fields} || $CGI->{mv_data_fields} || $Values->{"$table:ui_data_fields"} || '' ; $Values->{ui_data_fields} =~ s/\0+/ /g; return; [/perl] [set process_ui_cat] setcat=[cgi selector] [perl] my @filters = grep /^ui_filter:/, keys %$CGI; return unless @filters; foreach my $key (@filters) { my $val = delete $CGI->{$key}; $key =~ s/ui_filter://; next unless $val; next unless defined $CGI->{$key}; $CGI->{$key} = $Tag->filter($val, $CGI->{$key}, $key); } return; [/perl] [/set] [loop list="[either][value cat][or]NEW[/either]" prefix=table]
[set ui_cat_type][table-data cat link_type][/set] [set needs_banner_info][/set] [if scratch ui_cat_type eq external] [elsif scratch ui_cat_type eq internal] [/elsif] [elsif scratch ui_cat_type eq explode] [/elsif] [elsif scratch ui_cat_type eq simple] [set needs_banner_info]1[/set] [calc] $Values->{tab} = q{[table-data cat tab]} || $Config->{ProductFiles}[0]; return; [/calc] [/elsif] [elsif scratch ui_cat_type eq complex] [set needs_banner_info]1[/set] [/elsif] [/if] [if scratch needs_banner_info] [/if] [set ui_cat_display][table-data cat display_type][/set] [if scratch ui_cat_display =~ /icon|image/] [/if]
 Category properties
Name
Link type [display table=cat column=link_type key="[value cat]" js=|onChange="this.form.submit()"|]
External
Interchange page
Parameters
Explode file  Parameters: 
Table
field=column pairs
Results page
[set Create] mv_todo=back mv_nextpage=__UI_BASE__/search_wizard [/set] Complex search link
 
[calc] my $n = 4; if($Scratch->{search_page}) { $stuff = delete $Scratch->{search_page}; $stuff =~ s/.*?(['\|])(.*)\1.*/$2/s; $stuff =~ s/^[\s=0]+$//mg; $stuff =~ s/^\s+//mg; $stuff =~ s/\s+$//mg; } else { $stuff = q{[table-data cat search]}; } if($stuff =~ /\S/) { $n = 2 + ($stuff =~ s/[\r\n]+/\n/g); } else { $stuff = '' }; return ""; [/calc]
Banner Text
Banner Image

Display type [display table=cat column=display_type key="[value cat]" js=|onChange="this.form.submit()"|]
Image [display table=cat column=image key="[value cat]" js=|onChange="this.form.submit()"|]
Image properties
Link template [display table=cat column=link_template key="[value cat]"]
[button text="Change category"] [/button]
[/loop]

@_UI_STD_FOOTER_@