Gossamer Forum
Quote Reply
Links > category global
 
Hi,

Im trying to setup a global that returns the category URL of each link if that category matches a condition.

Each Link in my version of Links SQL has a minimum of two categories (brand and type) its placed in, for example Link 1 - Cat1: Kraft, Cat2: chedder

The way i've setup LSQL im hoping to only display the brand associated with each link eg.

Some Cheese
Price: $5.00
Brand: <a href="/kraft/">Kraft</a>

Im using the following global to display this but LSQL sometimes mixes up the LinkID and CategoryID order so instead of the brand category URL displaying im getting the Type URL.

Code:
sub {
my $tag = shift;
my $table = $DB->table ('CatLinks');
my $sth = $table->select ( { LinkID => $tag->{ID} }, ['CategoryID'] );
my $catID = $sth->fetchrow_hashref;
my $cattable = $DB->table('Category');
my $sth2 = $cattable->select ( { ID => $catID, CategoryType => 'Brand' }, ['Full_Name'] );
my $name = $sth2->fetchrow_array;
my $clean_name = $cattable->as_url($name);
my $url = $CFG->{build_root_url} . "/" . $clean_name . '/';
return $url;
}

I've written the following global to try and get around this:

Code:
sub {
my $tag = shift;
my $table = $DB->table ('CatLinks');
my $sth = $table->select ( { LinkID => $tag->{ID} }, ['CategoryID'] );
while (my ($catID) = $sth->fetchrow_array) {
my $cattable = $DB->table('Category');
my $sth2 = $cattable->select ( { ID => $catID, CategoryType => 'Brand' }, ['Full_Name'] );
if ($sth2 != 0) {
my $name = $sth2->fetchrow_array;
my $clean_name = $cattable->as_url($name);
my $url = $CFG->{build_root_url} . "/" . $clean_name . '/';
}
}
return $url;
}

Which im hoping will cycle through all the CategoryID's associated with each link and only grab the one that set to CategoryType => 'Brand'

Can you spot any error with the way i've set this up?

thanks for your help,

Charlie



Comedy Quotes - Glinks 3.3.0, PageBuilder, StaticURLtr, CAPTCHA, User_Edit_Profile

Quote Reply
Re: [Chas-a] Links > category global In reply to
What about this:

sub {
my $tag = shift;
my $table = $DB->table ('CatLinks','Category');
my $name = $table->select ( { LinkID => $tag->{ID}, CategoryType=> 'Brand' }, ['Full_Name'] )->fetchrow_array; my $clean_name = $DB->table('Category')->as_url($name);
my $url = $CFG->{build_root_url} . "/" . $clean_name . '/';
return $url;
}
Quote Reply
Re: [afinlr] Links > category global In reply to
 
Works great!

thanks Laura. Cool