Skip to content
This repository

Code selects 

gregheo edited this page · 5 revisions

Pages 78

Clone this wiki locally

Tell us your code select stories: Matt Rolf asks “Who out there has used code select and what are you using it for? How do you like it? Share your stories!”


Code selects can be used for building simple lists, like 5,10,15,20,…,100 or letters from A-Z:

my %values;
for ('A'..'Z') {
    $values{$_} = "The letter $_";
}
return \%values;

Keys and values are mapped to option values and labels, so the above code will generate HTML like this:

<option value="A">The letter A</option>
<option value="B">The letter B</option>
<option value="C">The letter C</option>
(etc.)

Starting with Bricolage 1.10.4, a code select can access itself (as a Bric::Biz::Element::Field object) with the $field variable. This feature was originally added so the code select could access its story element:


# this is the code select field object
$field

# this is the containing story instance or subelement
$field→get_parent


I think Bret has mentioned this before on the list, but Sportsnet’s
bricolage installation uses code selects extensively, mostly with the
“story-aware code select” patch that went into 1.10.4.

For example, a code select will detect the story’s category (hockey,
baseball, basketball, etc.) and then show a list of teams for that
sport. This way, a single “team associator” code select element can be
used, rather than having separate elements for each sport and relying
on the web team to pick the right element to add.

In a more complicated use, we also use a code select that displays a
list of stories in the same category (using Story::list()) to allow
stories to be inserted and shuffled around a “top stories” listing.
Same deal goes with the code select knowing what category to look in.

— Bric.PhillipSmith – 09 Jul 2008

Something went wrong with that request. Please try again.