I'll add it to the suggestions.
That's a good idea. (It's certainly the best place for all the suggestions for future versions. It keeps them all together and ensures that they are not overlooked by the developers.)
Here's a PHP script you can use to fix the position of the first few images in your gallery and then shuffle the rest.
(1) Create a regular gallery with JuiceboxBuilder-Pro.
(2) Save the code below in a file named 'config.php'.
(3) Place the 'config.php' file in your gallery folder.
(4) Use a configUrl in your gallery's embedding code to point towards the 'config.php' file:
(5) Change the $fixed variable's value (at the top of the 'config.php' file) to be the number of fixed images at the start of the gallery.
Just be sure to not set randomizeImages="TRUE" (in JuiceboxBuilder-Pro's 'Customize -> General' section) as this will randomize the images after the script sets the image order.
I hope this helps.
<?php
header('Content-Type: application/xml');
$filename = 'config.xml';
$fixed = 2;
if (is_file($filename)) {
$dom_doc = new DOMDocument('1.0', 'UTF-8');
$dom_doc->load($filename);
$settings_tags = $dom_doc->getElementsByTagName('juiceboxgallery');
$settings_tag = $settings_tags->item(0);
if (!is_null($settings_tag)) {
$new_dom_doc = new DOMDocument('1.0', 'UTF-8');
$new_dom_doc->formatOutput = true;
$new_settings_tag = $new_dom_doc->createElement('juiceboxgallery');
$values = array();
foreach ($settings_tag->attributes as $attribute) {
$name = $attribute->nodeName;
$value = $attribute->nodeValue;
$values[$name] = $value;
}
foreach ($values as $key=>$value) {
$new_settings_tag->setAttribute($key, $value);
}
$images = $settings_tag->getElementsByTagName('image');
$all = array();
foreach ($images as $image) {
$all[] = $image;
}
$integer = intval($fixed);
$clean = $integer < 0 || $integer > $images->length ? 0 : $integer;
$remainder = array_slice($all, $clean);
shuffle($remainder);
for ($i = 0; $i < $clean; $i++) {
$image = $all[$i];
$node = $new_dom_doc->importNode($image, true);
$new_settings_tag->appendChild($node);
}
foreach ($remainder as $image) {
$node = $new_dom_doc->importNode($image, true);
$new_settings_tag->appendChild($node);
}
$new_dom_doc->appendChild($new_settings_tag);
echo $new_dom_doc->saveXML();
}
}
?>