1,501

(3 replies, posted in Juicebox-Lite Support)

Unfortunately, on android smart phones it changes to a large splash page...

Please see the Screen Modes support section for details on how Juicebox adapts to different devices and screen sizes.
With Juicebox-Pro, you would have the ability to force a certain Screen Mode to always be used via the screenMode configuration option (in JuiceboxBuilder-Pro's 'Customize -> General' section).

... and cuts off the "View Gallery" button partially.

The 'VIEW GALLERY' text should be at the bottom of the Splash Page (and there are no configuration options to change its position).
It looks like its position has been changed by some custom CSS on your web page conflicting with the gallery's own CSS.
Your 'homecss.css' file has a lot of CSS type selectors which apply rules to all instances of certain HTML elements (rather than targeting specific elements via id or class selectors).
For example, you have CSS which is being applied to all <img> tags, all heading tags (<h1> through <h6>) and all <a> tags on your web page. Such code will affect all of these tags on your web page, including those used in the gallery. There is no way to isolate the gallery from such CSS and the gallery has no option but to inherit these CSS rules.

It looks like the problem with the 'VIEW GALLERY' text is being caused by the following code in your 'homecss.css' file:

#wrapper #subgallerymain table {
    width: auto;
    height: 40px;
}

If you have a table on your web page which requires these CSS rules, then assign the table an id (or class) and apply the rules to the id (or class) rather than all <table> tags within '#wrapper #subgallerymain'.

I also noticed buttons used to switch between galleries in the same html page don't have cursors or indicators that it's been clicked.

You can set up a certain style under a CSS class (using whatever CSS properties you like) for the selected link and then add or remove the class for the links as appropriate using JavaScript in your loadGallery() function (when a specific gallery has been selected).

Here's an example which switches between two galleries on the same page.
To see the example in action, create a couple of sample galleries with JuiceboxBuilder-Lite and name the gallery folders 'gallery1' and 'gallery2'.
Now, use the following code to create a new HTML file, put the file in the same directory as your gallery folders and open the HTML file in a browser.
The cursor will change to a pointer when the user hovers over a gallery link and the link corresponding to the selected gallery will be underlined.
The example is basic but demonstrates the required functionality which I hope you can incorporate into your own web pages.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" id="jb-viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" />
        <style type="text/css">
            body {
                margin: 0px;
            }

            /* Add pointer cursor to all gallery links */
            .gallery {
                cursor: pointer;
            }

            /* Create style for selected gallery link */
            .gallery.selected {
                text-decoration: underline;
            }
        </style>
        <script type="text/javascript" src="gallery1/jbcore/juicebox.js"></script>
        <script type="text/javascript">
            function loadGallery(base) {
                new juicebox({
                    baseUrl: base + "/",
                    containerId: "juicebox-container",
                    galleryHeight: "400",
                    galleryWidth: "600"
                });
                $('.gallery').removeClass('selected'); // Remove 'selected' class from all gallery links
                $('#' + base).addClass('selected'); // Add 'selected' class to only the selected gallery link
            }
            $(document).ready(function() {
                $('.gallery').click(function() {
                    var base = $(this).attr('id');
                    loadGallery(base);
                });
                loadGallery('gallery1');
            });
        </script>
        <title>Test</title>
    </head>
    <body>
        <div id="links">
            <span id="gallery1" class="gallery">Gallery 1</span>
            <span>&nbsp;</span>
            <span id="gallery2" class="gallery">Gallery 2</span>
        </div>
        <div id="juicebox-container"></div>
    </body>
</html>

I hope these notes help you to resolve your problems.

1,502

(3 replies, posted in Juicebox-Pro Support)

You're welcome!

1,503

(3 replies, posted in Juicebox-Pro Support)

WP-Juicebox (the dedicated Juicebox plugin for WordPress) allows you to create and embed Juicebox galleries from within the WordPress Dashboard.
If you want to embed a Juicebox gallery created with the Lightroom plugin into a WordPress page or post, then you'll need to do so manually using the baseUrl method of embedding documented here.

Here are the steps involved.

(1) Create your Juicebox gallery with the Lightroom plugin and save the gallery to a new empty folder of its own.
(2) Upload the complete gallery folder (not just the contents) to your web server without any modification to the contents within. (See note below regarding location.)
(3) Create or edit a WordPress page or post and select 'Text' as the input method (rather than 'Visual) for the editor.
(4) Paste the baseUrl embedding code into the editor.
(5) Click 'Publish' (or 'Update').

I would recommend that you upload your gallery folders to your web space's root directory for convenience but it does not matter where you upload your gallery folder to on your web server as long as the two paths within the baseUrl embedding code (the path to the 'juicebox.js' file and the baseUrl itself, pointing towards the gallery folder) are correct.

For example, if your gallery folder is named 'gallery123' and you upload the complete gallery folder to your web space's root directory, then you could use the following embedding code (changing the background color and gallery dimensions as necessary).

<script src="/gallery123/jbcore/juicebox.js"></script>
<script>
    new juicebox({
        baseUrl: '/gallery123/',
        containerId: 'juicebox-container',
        galleryWidth: '100%',
        galleryHeight: '600',
        backgroundColor: 'rgba(255,255,255,1)'
    });
</script>
<div id="juicebox-container"></div>

Incidentally, if you plan to embed multiple galleries into your website, the 'juicebox.js' file should be loaded only once per web page rather than once per gallery so you might like to add the <script> tag loading the 'juicebox.js' file into your theme's header and them omit it from each gallery's embedding code.

Also, in a WordPress page where the gallery's parent container is determined by the theme's layout, I would recommend setting the gallery's width to 100% (so that it fills the width of the parent container) and the height to a fixed pixel value such as 600px. The parent container is unlikely to have a height specified via CSS (the theme will not know how much content will be present on the page) so setting the gallery's height to a percentage could cause the gallery to have an unexpected height (Juicebox will not be able to determine what the gallery's actual height should be a percentage of). A fixed pixel gallery height is much safer in such a scenario.

I hope these notes help.

1,504

(3 replies, posted in Juicebox-Pro Support)

Unfortunately, it is not possible to have each image's unique URL include its filename (or anything other than its position in the gallery). Juicebox-Pro supports only the use of the image index as a # identifier.

When images are selected in a gallery, everything is done on the gallery's embedding page. The browser never leaves the gallery's embedding page so the base URL remains constant. (Separate web pages are not created for the gallery images.)
Juicebox-Pro then uses a # after the URL to identify which image is being (or should be) displayed.

There is no alternative solution built-in to Juicebox-Pro. Any other solution (such as using the image's filename or some custom text in a query string) would need to be coded manually and it would likely be a complex and time-consuming task but if you have a good working knowledge of JavaScript, you could certainly give it a try.

1,505

(3 replies, posted in Juicebox-Pro Support)

Set enableDirectLinks="TRUE" (in JuiceboxBuilder-Pro's 'Customize -> General' section) and the URL in the browser's address bar will change (with the corresponding # identifier) as new images are selected in the gallery.

1,506

(5 replies, posted in Juicebox-Pro Support)

No problem! I'm glad you've got it working.
Thank you for letting me know.

1,507

(5 replies, posted in Juicebox-Pro Support)

It's hard to know what might be wrong without seeing exactly what you are doing. It should certainly be possible to edit or replace a couple of icons at once.
If you upload the updated zip font file that you've created in IcoMoon somewhere (either your website or a file sharing service such as Dropbox) and provide a link, I'll take a look and see if I can find anything amiss.
Also, please let me exactly know what you are trying to do: whether you are editing or replacing the previous and next icons and, if you are replacing them, what icons are you trying to use (please let me know their codes).
Once I know a bit more about what you are doing and can see your customized font for myself, I should hopefully have a better idea of what the problem might be and how to solve it.
Thank you.

1,508

(5 replies, posted in Juicebox-Pro Support)

As Juicebox and SimpleViewer use different platforms (HTML5 vs Flash), Juicebox was written from the ground up (rather than simply being an HTML 5 translation of SimpleViewer) and the two image viewers feature slightly different feature sets.
The icons in a Juicebox gallery are actually characters in a custom font.

You can change the size of the navigation button icons using the navButtonIconSize configuration option (in JuiceboxBuilder-Pro's 'Customize -> Main Image' section). You can also change the color of the buttons using navButtonIconColor, navButtonIconHoverColor and navButtonBack Color ('Customize -> Color').
Please note that this will affect both the main image and the thumbnail navigation buttons. (There are no separate options for each.)

If you want to change the icon itself, then you would need to either edit the character in the font or choose a new one (and then generate a new font for use in your gallery).
Please see the Using Custom Icons support section for details.

1,509

(1 replies, posted in Juicebox-Pro Support)

JuiceboxBuilder requires Adobe AIR v2.0 or higher (as noted in the JuiceboxBuilder User Guide).
Adobe no longer develop AIR for Linux but you can still download the last version of AIR for Linux (v2.6) from the Adobe Archived Adobe AIR SDK versions web page.
Scroll down the page to the Adobe AIR 2.6 runtime downloads section and click the Adobe AIR 2.6.0 Linux (15.4 MB) link.
This should hopefully allow you to install and run JuiceboxBuilder-Pro on your Linux system.

I'm glad that you've got this gallery working now, too. Thanks for letting me know.

You don't need to have all your galleries share a single 'jbcore' folder. (It was just a suggestion knowing that you'll have multiple galleries throughout your website.)
There's nothing wrong with each gallery having its own individual 'jbcore' folder and if it's easier for you to manage your galleries as they are, that's absolutely fine!

Looking at your embedding code, it appears that your 'myfreebies' folder should be a complete Juicebox gallery folder but there is no 'jbcore' folder inside it.

If you have a complete gallery folder named 'myfreebies' on your computer's hard drive at the moment, then just upload the complete folder (not just the contents) to your website's root directory (alongside your 'mygallery' folder from this forum thread) and the gallery should show up on your 'Freebies.htm' page.

Incidentally, you can use an absolute path for your baseUrl but if you hardcode a 'www' subdirectory in the path, your gallery might not display if the URL in the browser's address bar does not contain the 'www' subdirectory.
Please see this FAQ:
My gallery works on 'www.example.com' but not on 'example.com' (or vice versa). Why?

It would be safer to use relative paths (and your gallery will display on both 'chrissyclark.com' and 'www.chrissyclark.com'.

Once you've uploaded your complete 'myfreebies' folder to your website's root directory, use the following <script> section.

<script src="/myfreebies/jbcore/juicebox.js"></script>
<script>
new juicebox({
baseUrl:  "/myfreebies/",
containerId: "juicebox-container",
galleryWidth: "600",
galleryHeight: "650",
backgroundColor: "FFFFFF"
});
</script>

The leading slashes in the paths above denote your root directory so the code above will work in any web page throughout your site without modification.

One more thing that might be useful to know...
If you plan to embed multiple galleries throughout your site, you can have them all share a single 'jbcore' folder (instead of having one 'jbcore' folder per gallery).
You can upload a single 'jbcore' folder to anywhere on your web server and, for each gallery, just load the 'juicebox.js' file from there. (For example, you could use the 'jbcore' folder from your 'myfreebies' folder for all your galleries.)
This means that you can upgrade all your galleries at once (for example when a new version of Juicebox is released) by replacing just one 'jbcore' folder on your web server.
Documentation for having galleries share a 'jbcore' folder can be found here.
(Having galleries share a 'jbcore' folder does not affect the baseUrl paths that your galleries use.)

You're welcome! I'm glad you've got it working.
Thank you for letting me know.

By default (if you do not specify a configUrl or a baseUrl in your gallery's embedding code), Juicebox will look for a file named 'config.xml' in the same directory as the web page containing the embedding code.
Therefore, Juicebox is looking for your gallery's configuration file to be here: www.chrissyclark.com/config.xml
... but it is not there.

I notice that you have uploaded a complete gallery folder to your 'mygallery' directory (and you already load the 'juicebox'js' file from this location).
All you now need to do is point Juicebox towards this gallery folder by adding a baseUrl entry to your embedding code.
Change:

<script>
new juicebox({
containerId: "juicebox-container",
galleryWidth: "600",
galleryHeight: "650",
backgroundColor: "rgba(255,255,255,1)"
});
</script>

... to:

<script>
new juicebox({
baseUrl: "mygallery/",
containerId: "juicebox-container",
galleryWidth: "600",
galleryHeight: "650",
backgroundColor: "rgba(255,255,255,1)"
});
</script>

Juicebox will now look for the configuration file inside the 'mygallery' folder (and will find it there).

For reference, the baseUrl can be relative (to the web page containing the embedding code) or absolute (in the form 'http://www.chrissyclark.com/mygallery/').

There are short descriptions of Embed Options (such as configUrl and baseUrl) here.

The baseUrl method of embedding is documented here.

I'm glad you've been able to resolve your problem.
Thank you for letting me know.

However, the <script> tag loading the 'juicebox.js' file can be in the <head> section of your web page (just as long as it is above the 'new juicebox' code).

I've tried to replicate your problem using exactly the same code that you posted (and the same gallery structure with the same gallery folder names) and the problem seems to be due to a couple of things:
(1) Your web page does not contain a Doctype Delcaration so the browser being used to view the gallery does not know what set of standards the code on your web page should confirm to.
(2) Your <div> 'id' (and corresponding 'containerId') starts with an uppercase character.

If you add the HTML 5 Doctype Declaration (<!DOCTYPE html>) at the very top of your web page (before the opening <html> tag), then the 'id' starting with an uppercase character should not cause any problems. (Some browsers will be more tolerant towards errors than others which is why your web page works in some browsers but not others.)
Otherwise, you could just start your 'id' (and 'containerId') with a lowercase character (but your web page should really contain a valid Doctype Declaration which should solve your problem, as least it does in my own test scenario).

You're welcome!
I'm glad you've got it working. Thank you for posting back to let me know.

You're welcome.

Just in case you're wondering, if you want to use an application which features all Pro configuration options in its interface, you could use either JuiceboxBuilder-Pro (the standalone program which comes with Juicebox-Pro) or the Juicebox-Pro Lightroom Plugin (if you are an Adobe Lightroom user).

When I view your website on my iOS device, the gallery's Splash Page is displayed as expected (please see the Screen Modes support section for more details on the Splash Page) but when I click the Splash Page to expand the gallery, I see the following error message:

Not Found

The requested URL /jbcore/full.html was not found on this server.

When a gallery is expanded on an iOS device, the gallery is expanded on a new page instead of on top of the embedding page (please see the Expand Gallery Behavior support section) and Juicebox uses the 'full.html' file inside the gallery's 'jbcore' folder to display the gallery.

The problem appears to be that the 'full.html' file does not seem to exist in its correct location on your web server.

Your galleries share a 'jbcore' folder in your root directory so the 'full.html' file should be located here: http://www.arthouse.org/jbcore/full.html
However, if you go directly to this location in a browser, you'll see the same error 404 message as when trying to expand the gallery from the Splash Page, suggesting that the file is not there.
Normally, when you open a gallery's 'full.html' file directly in a browser, you'll see the "Juicebox Error: Config file not found." message (the file should be used internally by Juicebox only) but you should not see an error 404 (file not found).

Try reuploading your 'jbcore' folder to your web server and make sure that it contains the 'full.html' file.
If you are sure that the file is in the correct location, then check its permissions to make sure that they are not too restrictive. (Default permissions of 644 should be fine.)
If you are sure that the file is in the correct location and that its permissions are OK, then I would ask your web host why the 'full.html' file returns an error 404 when going to http://www.arthouse.org/jbcore/full.html

Hopefully this will point you in the right direction.

Unfortunately, the Adobe auto-install mechanism seems to be a bit hit or miss, as I noted in this forum post. Perhaps you could try the suggestion in the post. (The thread is regarding CC 2015 but the suggestion might still help.)

If you are having trouble with the auto-install mechanism, I would certainly recommend installing the plugin manually (as you have done).
For others reading this, just download the 'Photoshop CS2 to CS6' zip version from the plugin's support page and follow the manual installation instructions. The resulting files in the 'Presets/Scripts/' folder will be exactly the same as if installing via Creative Cloud. Only the packaging of the files differs between the two methods.

Then followed the "Upgrading to  Juicebox-Pro" instructions. But off course now there's no "Juicebox" folder but a "juicebox_photoshop_template" folder in which I replaced the jbcore folder and changed the name of the 'juicebox.js' file to '~juicebox.js .

If you have installed the plugin manually, then to upgrade it to Pro:
(1) Replace the plugin's Lite 'jbcore' folder (in the 'Presets/Scripts/juicebox_photoshop_template/' directory) with the Pro 'jbcore' folder from the Juicebox-Pro download zip package ('juicebox_pro_1.5.0/web/jbcore/').
(2) Navigate inside the 'Presets/Scripts/juicebox_photoshop_template/jbcore/' directory and rename the 'juicebox.js' file to '~juicebox.js'. (This prevents the Juicebox JavaScript file from appearing as an extra script in the 'File -> Scripts' list.)

Please note that upgrading the plugin to Pro (by replacing the plugin's 'jbcore' folder) does not change the plugin's interface.
All galleries subsequently created after upgrading the plugin will be Pro galleries (with no branding and no image limit) but only Lite options will be available in the plugin's interface. A gallery built with the Photoshop plugin can be opened in JuiceboxBuilder-Pro to be configured with Pro options.

Now photoshop has two juicebox scripts of which one script (the Lite version) is working...

This is likely to be the version you installed manually and upgraded to Pro. You'll just not be seeing any difference in the plugin's interface but, if you create a gallery with the plugin, you should notice that there is no Juicebox logo in the lower-right corner of the gallery, indicating that the gallery is Pro. (The logo is present in all Lite galleries but not in Pro galleries.)

... an the  other is showing the error 25 message.

This is likely to be your first attempt (to upgrade a failed auto-install with the Pro 'jbcore' folder).

It sounds like you can probably delete your 'Presets/Scripts/Juicebox/' directory and keep your 'Presets/Scripts/juicebox_photoshop_template/' directory (the working plugin hopefully using the Pro 'jbcore' folder).

I hope these notes help to clarify a few things.

1,519

(1 replies, posted in Juicebox-Lite Support)

Please post the URL to your gallery's web page so that I can try to see the problem for myself. Thank you.

If the gallery displays OK in Firefox, then it sounds like a problem specific to your Safari browser.
Try completely clearing your Safari browser's cache before reloading your gallery's web page. This might help.
Also, if you have any extensions installed in your Safari browser, try temporarily disabling them to see if this makes a difference.

1,520

(2 replies, posted in Juicebox-Pro Support)

Unfortunately, this is a known problem (please see this forum thread) which affects Edge and IE11 but not Chrome, Firefox, Opera or Safari. However, the developers are aware of the issue and hope to have it fixed for the next version.
In the meantime, I've posted a possible workaround in this forum post. It's not ideal but it might tide you over until the bug is fixed. Thank you for reporting it.

1,521

(1 replies, posted in Juicebox-Pro Support)

What you see when you disable JavaScript is likely to be the Search Engine Optimization (SEO) code which is included on the web page within <noscript> tags and is displayed if JavaScript is disabled in the browser (and the true Juicebox gallery cannot be run).
If you want to protect a gallery from the general public, then it is perhaps also likely that you will not want search engines indexing your gallery page's content so I would recommend that you remove the SEO code from your web page when using Juicebox's built-in Password Protection. (When creating a gallery with JuiceboxBuilder-Pro, deselect the 'Add SEO Content' checkbox from the 'Customize -> Sharing' section.)

As you point out, an alternative method of securing a gallery would be to password protect the gallery's directory on the web server using .htaccess and .htpasswd files. Instructions can be found here. You might also be able to password-protect a directory on your web server from within your web hosting account's online Control Panel (without having to manually set up .htaccess and .htpasswd files.

That would be nice to see it in the next version ;)

Please feel free to post ideas for future versions in the Feature Requests forum thread.
This keeps all the ideas together and ensures that they are not overlooked by the developers.
Thank you.

1,522

(3 replies, posted in Juicebox-Lite Support)

You're welcome!
I'm glad I could help.

Incidentally, if you were escaping your text with the PHP function htmlentities() before outputting it, you might like to try using htmlspecialchars() instead. htmlspecialchars() will convert only special characters (&, ", ', < and >) to HTML entities (just enough to prevent breaking the XML syntax) whereas htmlentities() will convert all applicable characters to HTML entities (which might be breaking your 'ß' character).

That's great!
Thank you for letting me know.

1,524

(3 replies, posted in Juicebox-Lite Support)

Juicebox can display characters other than regular alphanumeric characters (i.e. non Latin characters and non Arabic numerals) throughout a gallery.
Check out this demo Juicebox-Lite gallery which has Chinese characters in both the Gallery Title and the image titles and captions.

Take a look at your gallery's configuration file in a browser (open your gallery's 'loadRefGallery.php?refID=xyz' file directly in a browser) and view the source of the page to see exactly what your PHP script is generating and outputting to the dynamically generated content.
It's possible that the 'ß' character is being escaped (before being output) and that this may not be necessary.
As long as the 'ß' character actually appears (not in an escaped form) in the Gallery Title and/or image titles and captions in the configuration file, then it should also appear in the gallery itself.

Also, if you are trying to use &szlig;, then as the '&' character is an XML entity that needs to be escaped in an XML file, you might need to escape the '&' character within &szlig; to &amp; and then use &amp;szlig; instead (but using 'ß' directly should also work fine).

Please see the following FAQ. (There are a couple of links in the FAQ which might be useful.)
Can Juicebox handle a custom data source, for example RSS or Instagram?

Every Juicebox gallery must have a 'config.xml' file (where the gallery's configuration options and image data are stored).
However, the 'config.xml' does not need to be a static file created when the gallery is authored. It can be generated dynamically (by a server-side scripting language such as PHP) at the time the gallery is displayed.

You'd need to point Juicebox towards a PHP (or alternative language) script using a configURL entry in your gallery's embedding code, for example:

<!--START JUICEBOX EMBED-->
<script src="jbcore/juicebox.js"></script>
<script>
    new juicebox({
        containerId: "juicebox-container",
        galleryWidth: "100%",
        galleryHeight: "100%",
        backgroundColor: "#222222",
        configUrl: "config.php"
    });
</script>
<div id="juicebox-container"></div>
<!--END JUICEBOX EMBED-->

The output of the 'config.php' file would need to be in the format of a regular Juicebox 'config.xml' file but, within the script, you could pull in data from whatever source you like (such as a MySQL database).

It would certainly be possible to do but knowledge of PHP (or similar) and how to query your database would be required.

There is a simple example of a dynamically generated configuration file (to display images from a designated web server directory) in this forum post which might help.

I hope this points you in the right direction.