It's been a while since X3.23 folks, but after many struggles, we are proud to release new X3.24.0! This release has emphasis on new functional and logical features, many of which have been pointed out by our users, which should perhaps have been part of X3 from the very start. This release may not include tons of exciting new frontend features/plugins, but it does nevertheless include a lot of cool features which will benefit most X3 users.
* Current release is actually X3.24.2.
X3.24.0 DEMO
* You should probably read up on new features before visiting the demo's.
demo.photo.gallery
demo.photo.gallery/panel/
Updating to X3.24.0
Easy
* Choose ONE option:
- Navigate to X3 Panel > Tools > X3 Updates (you may need to disable adblock plugin) :star: Recommended!
- OR Download x3_updater.php, upload to your X3 dir, and access in browser {URL}/x3_updater.php
- OR Download X3.latest.update.zip and update files manually by FTP. * If you use this option, you will need to manually hide your unnumbered folders by clicking "hide" button in panel after updating.
Easy
Use one of the options below if you want to make a NEW installation of X3.24.0 in an empty folder.
* Not for updating existing X3 websites.
- Download latest x3_installer.php, upload into the directory where you want to install X3 and visit {URL}/x3_installer.php in browser :star: Recommended!
- OR Download X3.latest.zip or X3.latest.min.zip (no sample pages), unzip and upload by FTP into the dir where you want to install X3.
:star: X3.24.0 FEATURES :star:
Numbered folders are no longer required
That's right. As most of you were aware, creating visible pre-sorted pages in X3 previously required creating folder names like "1.foldername" and "2.anotherfolder". Now you can just use "foldername" and "anotherfolder". I would like to emphasize however that you can still use numbered folder names like before.
Hold on ... How are pages sorted now and what about hidden pages? See next two related features:
Custom page sorting
With unnumbered folders we needed to add a new way to custom SORT pages by "drag and drop".
- From the left panel content menu, simply drag and drop pages into order [screenshot].
- Optionally, you can also sort pages from the gallery tab "custom sort" (like when sorting images) [screenshot].
- Although CUSTOM is the new default for page sorting, pages are sorted by NAME until you apply a custom sort (by drag and drop).
- Until folders are custom sorted (by drag and drop), NEW pages will be added into their natural order by name.
- If you have already sorted a range of folders, NEW pages will be added to TOP of list (ready to be sorted into order by drag and drop).
- I would like to emphasize that YOU CAN STILL USE NUMBERED FOLDERS (for example "1.foldername") to pre-sort your pages if you don't want to use custom sort by drag-and-drop. Keep in mind, if you drag numbered pages into a new custom order, X3 will ignore the number, and use the custom sort instead. THEREFORE, you should probably decide up front if you want to use numbered folders or custom sort by drag and drop.
- There is a SMART feature in the X3 panel that DETECTS if folders are in natural NAME order or custom sorted (even after drag and drop custom sort). If X3 detects that folders are sorted by name, it simply deletes all sort INDEXES, and NEW folders will be added into order by name.
- New "Reset folders sort" button available from page settings > gallery [screenshot]. When clicked, pages will reset to natural sort by NAME.
New feature to HIDE files and pages with a simple HIDE button in panel. No longer are you required to rename files with "__filename.jpg" to hide them from a page gallery, and no longer do you need to rename folders to hide them from the menu or a page folders layout.
- Hide files by clicking the HIDE button in the panel gallery [screenshot].
- Hide pages by clicking the HIDE button in the panel gallery [screenshot] or click the HIDE button for the current page [screenshot], or select HIDE directly from the left menu context menu [screenshot].
- A "hidden" image will not display in the page gallery, but may still be used for page plugins, in page content and for page preview image.
- A "hidden" folder will not display in the main menu or folders layout, but will still be available by direct URL.
- You can still rename a folder with underscore "_foldername" to hide it AND make it inaccessible by URL.
In addition to the new default custom sort method, you can now also sort folders by name, title, date and shuffle.
- Set page folders SORT from page settings > folders > "Sort folders by".
- You can change the DEFAULT folders sort method from main settings > page > folders > "sort by" [screenshot].
- Although CUSTOM sort is the new default, a group of folders will sort by NAME until sorted in custom order (by drag and drop).
- DATE sorting may be useful for BLOG pages, or pages with galleries that should list in chronological order. Folder date is extracted from folder creation date or from the page > DATE setting (if set) [screenshot].
- Folders sort method will apply to the website menu and page folders layout (a page displaying child pages, often "albums").
- For the sake of sanity, the left PANEL menu will always sort by name/custom order, even for folders that you have set to sort by date, title or shuffle. The website will sort correctly of course, but it would become messy if the left panel menu sorted branches by different sort methods, technically and logically.
technical
Although this an invisible feature managed by the panel, there is now a new content/folders.json data file which facilitates the above features and more.
- Stores sort index for custom sorted folders.
- Stores hidden value for hidden pages.
- Stores URL and path for quick lookup when X3 outputs pages.
- The technical reason we added this data file, is because we need to store some page properties in a global data file. It is slow and impractical to store the above values separately in a folders page.json file. The new folders.json file will open up for more cool database-like features in the future!
technical
All image data saved from panel (title, description, link, hidden, sort index) is now saved INSIDE each image as IPTC meta data. The advantage is that JPG images will keep all their settings when renamed, moved or copied to other folders. Titles and descriptions will be stored directly in the image and the panel will now show IPTC captions that you may have set from another application (Lightroom, iPhoto etc). This is so robust that you could download an image, upload to a different X3 website, and the image will still retain it's settings (title, description, link, hidden, sort index). This feature only applies for JPG files (supports IPTC) which after all is the format used for galleries. If you don't want to use this feature (for any reason), it can be disabled from settings > advanced > "Store image settings in image as IPTC" [screenshot].
New "Create new folder" options.
We have made available options to edit title, description, link, and hide page directly from the "Create new folder" dialog. These options can of course be edited from page settings after you create the page, but it is often practical to add these core page settings at the same time as you create the page. Another benefit is TITLE and LABEL fields automatically update while you write the folder name.
Improved panel content editor
- New "insert image" option allows you to select from images uploaded to the current page and insert into content. Additional option "popup" adds the image as a link that opens the image in X3 popup, while "frame" option adds a styled frame border around the image. You can still click the image button without selecting an image to insert an empty image placeholder as before.
- Dynamic value {{path}} now converts to correct folder path in editor preview mode [screenshot], which allows you to correctly preview images and links that use the dynamic {{path}} value.
- Added "horizontal line" <hr> button. A nice way to add vertical margin between sections in your content [screenshot].
- Added buttons for multiple header sizes h1 (large), h2 (medium) and h3 (small) [screenshot].
- Added CENTER align button [screenshot]. * Unfortunately, since markdown does not support text align, this is just a hack that uses the <center></center> html tag.
beta
New optional WYSIWIG content editor available from main settings > panel [screenshot].
BETA! The WYSIWIG editor is pretty cool and it can do things that the default markdown editor can't. I was even thinking about making it default editor until I discovered several disadvantages and why the existing MARKDOWN editor is in fact quite powerful for X3. For instance, we can't really use the X3 content templates/plugins [screenshot] with the WYSIWIG editor, because you wouldn't be able to edit an inserted HTML template (unless you go into "source code mode"). Furthermore, there is no "insert image" option, because the WYSIWIG editor requires a correct image path (which is not the same in panel as from the website). The HTML code (which you don't see) can get messy and corrupted, and there are several other minor flaws but I don't want to write a long post here. SUGGESTION: If you are comfortable with basic html/markdown code, I would suggest sticking with the existing powerful markdown/html editor combo (which has been improved in X3.24.0). If you don't understand basic markdown/html or if you have non-technical clients, it may be a good idea to enable the new WYSIWIG editor. * We hope to be improve the new WYSIWIG editor in time.
New image resize options
New image resize options available from panel Settings > Advanced.
- Set default JPG quality for resized images [read].
- New "Copy ICC color profile" from original for resized images [read].
- New "Symlink request cache" toggle setting [read]. Disable if server has problems with symlinks.
I think all of us (myself included) at times have felt confused with the amount of settings in the X3 panel. The bottom line is that most of these settings are required at some point by our users to achieve the modern website layout flexibility that X3 offers. In X3.24.0, we have sorted settings (both main settings and page settings) into a more logical order, with several less used settings stacked into expandable sections.
- All folder and gallery CAPTION options (inline captions, overlay captions and tooltip captions) are now organized under a captions section [screenshot].
- Default page folder and gallery settings (main settings > page) are now stacked into expandable categories [screenshot].
- Moved advanced page settings > Images section to Gallery > Captions > Caption Defaults [screenshot].
- Moved Page settings > modules section to Page > Advanced [screenshot].
- Reorganized page Folders and Gallery sections: Now, main layout options are displayed first followed by expandable category sections "Captions", "Popup" and "Advanced" [screenshot].
- Page settings > "Details" renamed to "Page".
- "Modules" concept renamed to "Layout".
- Page settings > Menu > Dropdown Options now only display for top-level folders [screenshot]. This is because topbar dropdowns (carousel, list etc) can only be added to top-level folders.
- Removed page settings > Menu > "reverse sort order" as this is now inherited from page settings > Folders > Sort.
All gallery POPUP settings can now be changed PER gallery from new page > gallery > popup section. Default popup styles and options are still set from main settings > popup.
New popup "download" button
Many of you have expressed interest in having a "download button" easier accessible from the X3 popup. We have therefore added an option to include a "download" button directly in the popup caption. This option is disabled by default, but can be enabled globally from settings > popup > caption fields [screenshot] or per-gallery from page settings > gallery > popup [screenshot]. This option makes it easy to allow download for some galleries.
New EU cookie consent plugin
New EU cookie consent plugin available from settings > plugins [screenshot]. Displays a cookie consent notification on page load to comply with the EU cookie law. Once visitor clicks the consent button, the notification will remove itself and not show again.
- Includes option to "use location services", which uses an external IP-to-location service to determine the country code of the visitor. Since the EU cookie law only affects countries in the EU, the consent notification will only display if the visitor is located in one of the countries affected by the EU cookie law. If disabled, the notification will display for ALL visitors regardless of location.
- I wish I didn't have to add this plugin, as the "EU cookie law" has been misinterpreted and you don't really need it for most websites. The main purpose of this law was after all to inform about data-collection on websites that track user behavior for ads (etc) which is considered "intrusive" upon privacy (ref 1, 2, 3, 4, 5, 6, 7). X3 does not track data considered "intrusive" unless you are using a 3rd party plugin. It was however quite easy to add this plugin without disrupting X3, and some of you may feel obliged to use it, so here it is!
Some of you may noticed that Facebook failed to load page preview image when sharing a page for the first time on Facebook. We have now added og:image:width, og:image:height and og:image:type meta tags for page preview image, which basically forces Facebook to load and cache the preview image on first share [ref].
Video Intro plugin now works for mobile devices
With recent advancements in mobile browsers and the new playsinline attribute, we have now fixed the video intro plugin to also work for mobile browsers. Also added new setting "Disable on mobile devices" [screenshot], as it may still be useful to disable video intro on mobile devices if the video aspect doesn't suit the screen. PS! For mobile devices to autoplay video, the video must not contain soundtrack OR you must have the muted setting checked.
Audio player mobile autoplay
New audio player setting "autoplay for mobile devices" [screenshot]. Audio autoplay is not allowed in mobile browsers (for many reasons), but this setting is a workaround that triggers audio play when visitor first touches the screen.
New "Force URL" setting
New "Force URL" setting available from main settings > Advanced [screenshot] [screenshot] which allows you to force a specific URL for your X3 website. This is useful when you have multiple URL's (for example http://domain.com, http://www.domain.com, https://domain.com, http://domain.co.uk, http://anotherdomain.com) which all point to the same X3 website. Since it is counter-productive to have multiple url's for the same website [forum], we recommend consolidating and redirecting your url's to a single canonical URL of your choice. For example if you want URL to always be set to the WWW-version of your website, using SSL (https), you would write: https://www.domain.com. Any request that does NOT match the specified URL will then redirect appropriately from within the X3 app.
---
MORE X3.24.0 IMPROVEMENTS AND FEATURES
- New Settings > Advanced > "Prevent search engines from indexing image pages" (SEO crawling) [screenshot]. When enabled, all image pages will output a X-Robots-Tag: noindex HTTP header and all gallery image links will include a rel="nofollow" attribute, effectively telling Google to NOT index the image-landing pages [ref1][ref2].
- Settings > Advanced > "Block image downloads" [screenshot] now also removes all download buttons (popup download button etc). This is useful because it is explicit that all downloads should be blocked when this option is enabled.
- Fotomoto (plugin) batch check-in: All images in a gallery get checked in to Fotomoto when you first visit the gallery, with no need to click "buy" to have each image checked in individually.
- Scroll-to-top button in footer is now hidden also on mobile devices when not required (page does not scroll).
- Sidebar layout now also has scroll-to-top button [screenshot] (hidden when page has no scroll) [forum].
- Better implementation of logo disabled for topbar-float layout.
- Include custom javascript and custom/files/javascript before x3 core javascript [screenshot].
- Carousel menu now takes into account page gallery ASSETS setting when extracting images "amount".
- Added classes "amount-x" and "folder-amount-x" to amount-texts [screenshot] so you can easier hide the text for example with custom class .amount-0 { display: none; }.
- Add custom rules to .htaccess wrapped inside # custom rules start<---># custom rules end. Custom rules will be copied when use you use X3 updater.
- Loads of improvements to X3 core code.
- Gallery sort
- Sort order will now default to NAME if two (or more) items have the same sort value (f.ex file size or date).
- If new files get added to a custom-sorted folder, they will display at TOP of gallery until re-sorted.
- On gallery custom sort (drag-and-drop + save), the page's gallery SORT BY setting will automatically be set to "custom" [forum].
- Video
- Sort by "shuffle" now also works for video.
- Videos keep the <hr> horizontal rule to separate video-items also when using gallery GRID layout.
- Videos can now be custom sorted and hidden just like images.
- Videos are now wrapped inside a <div class="x3-video"> element inside a parent <div class="x3-video-container"> for better custom style control.
- Diagnostics page
- Diagnostics page now loads all data via Javascript (XMLHttpRequest). This makes the diagnostics more secure and only displays output to humans.
- Prevent diagnostics from caching on proxy-cache services (like Cloudflare or varnish).
- Diagnostics now removes unused directories /.sass-cache, /check and /diag, which some of you seem to have lying around from older X3 versions.
- Improved test to check if /config/ folder is blocked (as it should be). Config folder is assumed blocked if test response is anything else than "HTTP/1.1 200 OK" (success response).
- Create required /content/folders.json if is missing or warn if it does not exist and cannot be created.
- Contact Form
- Improved validation and sanitation of multiple emails added to "recipient" (this example will correctly validate the two valid emails only). If no valid recipients are specified, mailer will fail (obviously).
- You can now set recipient email addresses (who receives the emails) directly in the contact form using a HIDDEN input field with name "recipient": <input type="hidden" name="recipient" value="email1@email1.com, email2@email2.com">. This is useful if you require multiple forms on your website which send to different emails than the one(s) specified in your main settings. If you specify a recipient directly in the form, it will override "recipient" from your panel mail settings.
- Contact form EMAIL (visitors email) input field is now OPTIONAL. * Before, it was a required field for the form to work.
- Improved FORM behavior: On submit, if the form is invalid (for example empty required field, or incorrect email format), the page will now scroll smoothly to the first invalid field, set focus and emphasize the field. * Before, page would just scroll to top if the form was invalid.
- PANEL
- Fixed auto image-orientation on image upload and added alternative options to fix image orientation after upload [forum].
- Improved panel "manage" interface design [screenshot].
- Improved panel popup captions design implementation [screenshot].
- Added support for "paranoid level" panel security: Simply rename your /panel/ folder to anything you want so basically the URL is unknown to both human and robot hackers. For the X3 Updater to automatically manage your renamed /panel/ folder when updating, make sure to rename your panel folder to end with the word "panel" for example "/mysecretpanel/".
- Much faster live SORTING from gallery manager (when toggle sort by name, date, size and custom).
- Panel Tools > Updater will now show link to latest release post and includes proper version comparison (current version vs new version).
- Panel Tools > X3 Updates now bypasses ADBLOCK (for those of you who have adblock browser plugin enabled). Adblock is also bypassed in x3_installer.php and x3_updater.php scripts.
- Panel will now correctly remember users LANGUAGE selection on login page (when accessed from same computer/device). If no language was previously selected, language will default to Settings > Panel > Panel Language option.
- Improved German language. Thnx @Niggoh
- If logged out of panel (for any reason), performing actions (navigating or saving) will now redirect to login page instead of silently failing.
- Allow GPX files in panel (upload/manage).
- Cloudflare API no longer clears JSON ajax page requests, as these requests are managed internally by X3 request versioning.
- Updated and added dozens of 3rd party Javascripts and CSS loaded from JSDelivr CDN.
- Removed unused /panel/filemanager_assets/securimage/ directory.
- Added auto-correct (on save) for incorrect orphan commas in toolbar > items [screenshot].
- Added natcasesort to panel menu (so that "5.name" will sort before "22.name").
- Tons of panel CODE improvements.
- BUGS :beetle:
- Fixed so images with _underscore in name open properly in X3 popup window when shared on social media (Facebook) [forum].
- Fixed javascript error which occurred when logo is disabled and logo-type previously set to "image logo".
- Fixed a bug when visitor used "back" button in browser and could not click to re-visit the page that was navigated away from.
- Fixed broken SLIDEMENU button on large screens when selecting slidemenu layout from the X3 STYLER.
- Fixed a bug where videos with multiple dots in file name (f.ex "my.video.file.mp4") would not display in gallery.
- Fixed a PANEL bug in Firefox (and possibly some other browsers) where dragging an item for custom sort might trigger "click" on drag release.
- Fixed a PANEL bug where you could not SAVE image data in edit mode [forum].
- Download-button in X3 popup now always points to the full size original image instead of the image that is loaded into the popup, which sometimes (depending on screen size) is a smaller resized image.