> Hi I am trying to get it so that a menu link for a category only links to > products in that category and in the area it is displayed under. Mike posted the attached file that not only makes this process work but it allows for creating custom cat link searches effortlessly. I have heavily tested this in 4.8.2 and it works beautifully. Just dump it into catalog/pages/admin directory of any catalog to try it out. Delete it if you want to revert to the default layout_auto.html page. (I don't think so) Click on 'Design' and 'auto populate' to use it.[set page_title]Layout auto-populate[/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]icon_pages.gif[/set] [tmp meta_header] [include include/table_populator] [/tmp] [seti ui_body_extra][/seti] @_UI_STD_HEAD_@
1. Choose a table as the source: | [if !value area_table] [value name=area_table set=products hide=1] [value name=area_column set=prod_group hide=1] [value name=cat_column set=category hide=1] [/if] [loop list="[list-databases]" option=area_table] [loop-code] [/loop] |
2. Choose a column to populate areas: | -- none -- [loop list="[db-columns table='[value area_table]']" option=area_column] [loop-code] [/loop] |
3. Choose a column to populate categories: | -- none -- [loop list="[db-columns table='[value area_table]']" option=cat_column] [loop-code] [/loop] |
4. Choose a search type: | Narrow search (area and category match) Simple search (only category matches) Complex search (template substitution on below) |
5. Complex search code: |
NOTE: Not active unless complex search selected above. fi=products st=db co=yes sf=prod_group se=~PROD_GROUP~ op=eq sf=category se=~CATEGORY~ op=eq sf=inactive se=1 op=ne rf=sku va=banner_text=~BANNER_TEXT~ |
6. Select the page class: | |
7. Select the page area: | |
8. Decide whether to remove previous settings: | No Yes |
9. Click this button to populate: |
[button text="Populate"]
[flag type=write table="area"]
[flag type=write table="cat"]
[seti ui_failure]
[perl tables="area cat [cgi area_table]"]
my $go_page = $CGI->{mv_nextpage};
$CGI->{mv_nextpage} = '@@MV_PAGE@@';
my $ptab = $CGI->{area_table}
or return "no area source table";
my $pdb = $Db{$ptab}
or return "area source table bad";
my $adb = $Db{area}
or return "no area table";
my $cdb = $Db{cat}
or return "no cat table";
my $acol = $CGI->{area_column};
my $ccol = $CGI->{cat_column};
if(! $acol and ! $ccol ) {
return "no column to populate either";
}
my $selector = '';
my $selcode = '';
my %area_defaults = (
name => undef,
which_page => $CGI->{which_page} || 'all',
sort => '05',
sel => $CGI->{sel} || 'left',
display_type => 'name',
);
my %catmap;
my $narrow;
my $lt;
my $search_code;
if($CGI->{cat_type} eq 'simple') {
$lt = 'simple';
$selector = 'category=~CATEGORY~';
$search_code = '';
}
elsif($CGI->{cat_type} eq 'narrow') {
$narrow = 1;
$lt = 'simple';
$selector = < |