range
Creates a loop of numbers that can be applied to a data feed. Parameter 1 is the start index, parameter 2 is the end index, and a third (optional) parameter is the number of “steps” between.
Examples
Personalize and Display User’s Top Story in a Hero Section and Other Stories in a Sub-Section
Zephyr: In the Setup:
{interestContent = personalize({"algorithm":"interest","size":3,"content":content})}
In the Code:
Your top story for the day! <br/> {foreach range(0,1,1) as i} <a href={interestContent[i].title}>{interestContent[i].title}</a> {/foreach} <br/><br/> Other stories we think you'd enjoy: <br/> {foreach range(1,2,1) as i} <a href={interestContent[i].title}>{interestContent[i].title}</a><br/> {/foreach}
Output: Your top story for the day! From the Fashion Blog: The Most Comfortable Socks You’ll Ever Own Other stories we think you’d enjoy: Spider-Man: Threat or Menace? Stephen King’s New Book is a Real Scream!
Description: This script uses the personalze() function to find a user’s top three stories based on user interest, creating a local variable called “interestContent,” which contains each user’s top three stories, starting with the most interested. Next, it uses the range() function in conjunction with a foreach loop to start at the beginning of the list (index 0) and runs one time with a “step” of 1 (meaning how far to go, in this case, grab the first item). This item gets display in the “Hero” section. Next, a similar method is used to find the two remaining stories. This time, the range() function starts at the second item in the list (index 1), runs 2 times, again with a “step” of 1. This populates the secondary items sub-section.