Boxed Element Display
Boxed Elements
The basic element displays take an element and display it without further constraint. Maybe that is what you require. Maybe you are in control of your elements and can set their dimensions to work with the element display widget as you require.
On the other hand, perhaps you want to display the a slider or gallery of elements and constrain the display size without having to think too much about the element or the size of the original, like you can when displaying a slider or gallery of images. For this, we have some Boxed variations of the element display widgets.
These display widgets use CSS scaling and cropping to provide similar scaling and cropping to the display widgets that work directly with images. Elements are rendered fully, then the rendered html is scaled and cropped to match the dimensions of the gallery or slider items.
Consider - this is just one intensive example of what you can do with Omni Gallery Elements.
Example - Element Swiper Boxed
In our example below, the image source is a list of addon pages on this site. However, rather than displaying the thumbnails or screenshots for those pages, we are pulling the main area of the page using an element provided by Universal Content Puller, then scaling it to fit into the box for the Swiper display widget with a cube animation.
So we have a gallery of page previews using html taken from the actual pages rather than from images of the pages!
(Have a look at any slide in your browser developer console and see - its all HTML. Compare this to the similar gallery of screenshots)
Button Nav
Apply bootstrap dropdown templates, lightbox overlay templates and slide out templatesto create button popups for core Autonav and other navigation blocks. Popup anything by using a button nav template with a content block, stack or Universal Content Puller. Easily configure associated button icons, text and design from a new 'Button Design' option in the block edit dropdown.
- Dropdown - click the button and the block content drops down by the button or from the edge of the page
- Lightbox - click the button and the block content appears in a lightbox overlay
- Slide out - click the button and the block content slides out from the edge of the page
Blocks and templates are provided for:
- Core Autonav block
- Core File block
- Core Content block
- Core Youtube block
- Stack display - any block in a stack
- Manual Nav
- Nestable Manual Nav
- Universal Content Puller - stacks, page areas, files, anything
- Navigation Button block, for direct linking to pages and URLs
All of these share an easy dialog for configuring the button style, size, colour and icon using standard bootstrap options. Buttons can be left inline or aligned with the edges of the window. The navigation templates extend this with options for dropdown alignment and direction.
If you have Buttons Factory Pro, you can even use button themes from Buttons Factory Pro. Button Nav will show available themes in the design dialog.
Button Nav is fully functional with Bootstrap based themes. Nevertheless, it can also work with other themes. Please message me through a support request if you would like to discuss use with a specific theme.
Some ideas for using button nav:
- As the main navigation template for mobile-only sites or where header space is at a premium.
- Top provide header navigation visually separated from a site's main navigation bar.
- For localised navigation within pages, such as a 'read more' button or link which shows some options on what to read.
- To attach navigation elements to the side of the browser window.
- To popup stacks, content and other blocks.

Button Nav
jl_button_nav - v1.9.1
Button dropdown templates for core Autonav and other navigation blocks. Easily configure associated button icons, text and design from a new “Button Design” option in the block edit dropdown.
Button Nav
Container Check
Container Check requires Concrete CMS core version 9+ and is not compatible with v8 sites. Hence all we can show here is some screenshots and not a full demonstration.
Container Check is most illustrative for Bootstrap5 based themes. It may be adapted to work with some other theme frameworks.
The dashboard icons for containers are not particularly illustrative. Container Check helps you visualize container structure by providing a rough preview of the layouts provided by containers in a Bootstrap 5 based theme.
Once installed, a dashboard page can be found at
- Dashboard > Pages & Themes > Container Check.
In the dashboard menu, select 'Pages & Themes' and then Container Check within that group.
Preview of container structure is approximate and depends on:
- Container being structured with <div> elements
- Theme based on Bootstrap 5 or compatible theme grid
- Width of the window!
In addition to providing a dashboard page to preview cointainers, Container Check optionally integrates with Frontend Dashboard to provide the similar information in a block.
Export settings
Container Check
Editor Comment
The Editor Comment block allows you to enter comments that show only in edit mode. For use by site developers who want to leave notes/comments for those editing a page in the future.
Use this block as you would use code comments during development:
- To leave 'notes to self'
- To help teams communicate about what has been done and why
- As documentation
- Leave the comments on a site permanently
- Or uninstall when the site goes live and all comments simply disappear!


Editor Comment
jl_editor_comment - v7.9.0
Enter a comment that shows only in edit mode. For use by site developers who want to leave notes/comments for those editing a page in the future.
Editor Comment
Ele-php-ant Info
From the dashboard run phpinfo() and view extended information about the Concrete CMS environment and configuration.
Once installed, dashboard pages can be found at
- Dashboard > System & Settings > Environment > PHP Information.
Show phpinfo() reports for your site/host environment. - Dashboard > System & Settings > Environment > Constants Information.
Constants defined by PHP, by the site environment and by Concrete CMS. - Dashboard > System & Settings > Environment > Application Information.
Application and assets information from the Concrete CMS environment. - Dashboard > System & Settings > Environment > Config Information.
Config Files and Config Database information from the Concrete CMS environment and packages. - Dashboard > System & Settings > Environment > MySQL Information.
MySQL / MariaDB schema and table information.
In the dashboard menu, select 'System and Settings' and then look for these pages under the Environment group.


Ele-PHP-ant Info
jl_elephpant_info - v7.9.2
From dashboard pages run phpinfo() and view extended information about the Concrete CMS environment and configuration
-
PHP Information
/dashboard/system/environment/elephpant_info
Run phpinfo() from the dashboard and show results. -
Constants Information
/dashboard/system/environment/constants_info
Constants defined by PHP, by the site environment and by Concrete CMS. -
Application Information
/dashboard/system/environment/app_info
Application and assets information from the Concrete CMS environment. -
Config Information
/dashboard/system/environment/config_info
Config information from the Concrete CMS environment and packages. -
MySQL Information
/dashboard/system/environment/mysql_info
Config information from the MySQL database.
Ele-php-ant Info
Extreme Clean
A suite of extreme cleanups to remove obsolete data and files, making your site leaner, cleaner and faster.
As a web site is developed, edited and used, behind the scenes a shed-load of unused and no longer relevant stuff accumulates. Extreme Clean searches out such stuff so you know what is old and unused, then removes it for you.
Cleanup your site
- Improve speed. On a busy or old site accumulated edits, history and abandoned user accounts combine to slow it down.
- Decrease the size of backups . As a site is used, the database grows and slows. Backups take longer because they are saving old data you no longer care about. (but backup before you first run Extreme Clean, you don't want to clean too much!) .
- To assist with GDPR (General Data Protection Regulation) compliance.
- Before taking a site from development to production. When you are intensively editing and developing a site, the history of Lorum-Ipsum and test data remains in old page versions and test users.
- Strengthen security. Does some of the old stuff hidden away on your site put it at risk?
Scour your site for
- Old page versions
On a frequently updated site, old page versions accumulate much faster than the core job removes them. Extreme Clean rips through a site purging old page versions and the data they contain. Extreme clean can clean page versions where the core old versions job is overwhelmed.
-
Old file versions
As well as accumulating old file versions, a site can also accumulate empty filesets and folders, broken files, lost files and empty system directories. Extreme clean has carefully crafte cleaners for all of these file manager problems. - Drafts and Trash
Clear out abandoned drafts and trash, either completely or once the pages have been un-modified for a number of days. Extreme clean can clean the trash where the core empty trash is overwhelmed.
- Long log files
Trim log files by length or age. Configured by default for the main Log and the Jobs Log (the c5 core provides no means to view or clear the jobs log)
- Abandoned user accounts
On a busy eCommerce or membership site, users come and go, but rarely do they clean up their accounts. Extreme Clean seeks out and removes inactive user accounts.
- Messy databases
Over time the storage for database tables can become fragmented and disorganised. Extreme Clean optimizes database tables for efficient access and storage.
- Old /incoming and /tmp files
Clean out old and forgotten /incoming and /tmp files by age.
-
Packages
Uninstalled packages and .zip archives in the /packages directory. - Broken Workflows
Clean out empty and broken page workflows by age.
-
Cluttered Clipboards
A growing clipboard slows and eventually siezes up, breaking the blocks add panel. Trim clipboards by age or size.
-
Unused Blocks and Templates
Its easy to add custom blocks and templates to /application/blocks, but how many of them are really used when you have finished developing. Remove unused blocks and templates.
Cleaners can be run directly from the dashboard or through the Extreme Clean queable job and for Concrete v9 through the Extreme Clean task.

Extreme Clean
jl_extreme_clean - v9.0.0 - resources v9.0.0
Extreme cleanup dashboard pages and job/task to streamline a site by removing old page versions, truncate logs, delete inactive users and much more. Extensible through cleaner plugins.
- Extreme Clean
-
Extreme Clean
/dashboard/system/extreme_clean
Extreme cleanup dashboard pages and job/task to streamline a site by removing old page versions, truncate logs, delete inactive users and much more. Extensible through cleaner plugins. -
Cleaner Plugins
/dashboard/system/extreme_clean/plugin_list
Functionality can be extended by provision of cleaner plugins. -
Configure and Run Cleaners
/dashboard/system/extreme_clean/clean
Select a cleaner plugin, configure it, save its parameters and run it from the dashboard. -
Job/Task Settings
/dashboard/system/extreme_clean/job_settings
Job/Task Settings for Extreme Clean . Extreme cleanup dashboard pages and job/task to streamline a site by removing old page versions, truncate logs, delete inactive users and much more. Extensible through cleaner plugins.
Extreme Clean
Last Updated
Intelligently show the time a page was last updated.
Here are some of the many ways in which this addon can show when a page was last updated. The example shown is for the Main area of this page.
Export settings
Export settings
Export settings
Export settings
Export settings
Easy Setup
- On this site find an example similar to what you require, click the View settings button, copy the settings JSON.
- On your page, add a block. On the Support tab click the button to Import settings, paste the settings JSON and import,
- Edit the settings to what you require.
Last Updated is also used within the footer of this site, showing the Last Updated time for the Main area each page.

Last Updated
jl_last_updated - v9.0.0 - resources v9.0.0
Show when a page was last updated based on blocks edited.
-
Last Updated
/dashboard/blocks/last_updated
Show when a page was last updated based on blocks edited. -
Last Updated Plugins
/dashboard/blocks/last_updated/plugin_list
Show when a page was last updated based on blocks edited. -
Global Settings
/dashboard/blocks/last_updated/global_settings
Edit global settings and defaults for Last Updated.
Last Updated
Magic Tabs
What could be simpler than just inserting a block where you want to start a new tab? Just insert Magic Tabs between any other blocks and your page will magically split into tabs or accordions.
Magic Tabs is so simple, yet offers so much more:
- Any block or combination of blocks within a tab.
- Multiple sets of tabs within a page.
- Multiple sets of tabs within any area.
- Different templates for each set of tabs.
- Untabbed blocks above, below or between sets of tabs.
- Tab memory.
- Tooltips on tabs.
- Tabs within stacks and global areas.
- Nested tabs
- Vertical tabs
- Accordions
- Responsive threshold, render as an accordion
- Animated transitions for tabs and accordions
- Icons in tab headings
- Automated tab headings
- Back button history
- Easy links to tabs from on page or off page
- Contextual links to tabs, First, Last, Previous, Next
- Split Forms and Page Lists into tabs
- Automated player, create automated slide shows and sliders out of tabs
- No Tabs - tabs without tab controls for building automated slide shows.
- Many different tab templates included.
- Easily add your own tab templates.
- Use themes from ButtonsFactoryPro in tab templates
- Integrate with your own JavaScript through events.
Magic Tabs are so easy to use, you can get started by simply adding Magic Tabs blocks onto a page where you want to start each tab. If you want to explore more advanced possibilities, work your way through the comprehensive documentation on these pages.
Current Version

Magic Tabs
jl_magic_tabs - v7.9.2
Organise content and any other blocks or stacks into tabs and accordions. Create transitions between tabs.
- Magic Tabs
Documentation Pages
- Getting Started
- Advanced Settings
- Tabs and Layouts
- Accordions
- Global Settings
- Jump and Linking to Specific Tabs
- Auto Play
- Splitting a Form into Tabs
- Form to Magic Tabs block details
- Splitting a Page List to an Accordion
- Tabs and AJAX
- No Tabs
- Developing Tab Templates
- Problem Solving
- Developer Interfaces
- Version History
Magic Tabs
Requires php7+
Omni Gallery
Galleries and sliders of anything. Images, pages, users, express objects, calendar events and more.
Omni Gallery is a massively flexible gallery and slider system. Multiple ways to select images. Multiple ways to display them. Easily expandable with further image selections and display widgets. Check out a few examples of what you can show with Omni Gallery.
Once installed, you will have:
- An Omni Gallery block in the Multimedia block group.
- Dasboard pages at Dashboard > Stacks & Blocks > Omni Gallery
Building out a site with current image galleries, carousels and sliders can be a frustrating experience. Some blocks work by picking individual images. Some blocks work with filesets. Some blocks work with folders in the file manager. Picking images and adding them to a block, fileset or folder takes time. Then you have to add captions. Then the design changes, a different block is selected, the time spent editing your carefully constructed slider gets discarded and you have to start from scratch with a different block.
Having decided how images will be displayed, you don't get any choice on how they are entered. You have to use what the block gives you, which may not be how you would really like to pick images.
Hence Omni Gallery. One single gallery addon to fulfill all galley and slider requirements. Omni Gallery provides many different ways of selecting images, you can select images in a way that suits your application and the way you like to work.
- Pick individual images
- Select a fileset and either snapshot or track the images in it
- Select a folder and either snapshot or track the images in it
- Select a system directory
- Select an individual user, page or calendar event and generate image lists from associated attributes
- Build a user list, page list, calendar event list and generate image lists from associated attributes
- Build a list of anything using Express and generate image lists from associated attributes
- Select an individual Community Store product and generate image lists from associated attributes
- Build a Community Store product list and generate image lists from associated attributes
- Integrate with core image/file attribute and third party multi image and fileset attributes
- Filter by size and type
- Handle any number of images from just a few images to effectively infinite collections.
- For latest list see Image Selectors
Having selected images, in Omni Gallery you can then decide how to display them choosing a display widget:
- Core image slider
- Core page list
- Glider
- Swiper
- Thumbnail grid
- Vegas background slider
- For latest list see Display Widgets
Omni Gallery takes care of pagination, lazy Loading and lightbox overlays. Titles and captions/descriptions can be selected from any image property or attribute and even from file embedded exif data. You can even show different descriptions in the display widget and lightbox.
The display and lightbox configuration options of Omni Gallery are massively configurable. On the rare occasions you need to display more complex layouts within a gallery or slider, Omni Gallery Elements puts your coded elements into a gallery or slider.
If you can't find the image selector or display widget you require, the Omni Gallery architecture is fully Pluggable and Expandable. Its easy to integrate further plugins with alternative javascript slider and gallery widgets.
Having put all that work into configuring a slider, carousel or gallery, with Omni Gallery you can easily swap the display widget while keeping the same image selector, or swap the image selector while keeping the same display widget. If you need a similar Omni Gallery on another page, just export the settings and import them to a new block. You can even export and import Omni Gallery settings to copy between sites (though take care to adjust fileset or folder identities after importing).
If you have a massive collection of images to display, Omni Gallery can crawl a file manager folder or system directory dynamically. You can add a galley of thousands of images with just a few clicks.
Easy Setup
- On this site find an example similar to what you require, click the View settings button, copy the settings JSON.
- On your page, add a Omni Gallery block. On the Support tab click the button to Import settings, paste the settings JSON and import.
- On the advanced tab, clear the radio button that enables the export button with the gallery. You probably don't want to show that on the front end of your site!
- Edit the settings to what you require. Most importantly, in the Image Selection tab, adjust any concrete5 File, Fileset or Folder selection as IDs will change between sites.
Extension
Omni Gallery is designed for extension. Image selectors, display widgets and lightbox overlays follow a pluggable and extensible architecture for easy integration of further selctors, displays and lightboxes from within Omni Gallery or provided by third party packages or your own application specific plugins.
Omni Gallery with FREE extensions
Get Omni Gallery and extensions for the price of just this addon with the Omni Gallery Complete special offer.

Omni Gallery
jl_omni_gallery - v9.0.5 - resources v9.0.2
A massively flexible gallery and slider system. Multiple ways to select images. Multiple ways to display them. Easily expandable with further image selections and display widgets.
-
Omni Gallery
/dashboard/blocks/omni_gallery
A massively flexible gallery and slider system. Multiple ways to select images. Multiple ways to display them. Easily expandable with further image selections and display widgets. -
Omni Gallery Global Settings
/dashboard/blocks/omni_gallery/global_settings
Edit global settings and defaults for the omni gallery block. -
Omni Gallery Plugins
/dashboard/blocks/omni_gallery/plugin_list
Plugins for Image Selectors, Display Widgets and Lightbox Overlays.

Omni Gallery for Community Store
jl_omni_gallery_community_store - v1.0.1
Community Store Product and Product List image sources for Omni Gallery. Use Omni Gallery to display your Community Store product images using Omni Gallery's many Display Widgets and Lightbox Overlays.

Omni Gallery Elements
jl_omni_gallery_elements - v9.0.0
Use Concrete CMS Elements with Omni Gallery Display Widgets and Lightboxes to provide fine control of individual gallery item content, layout and style.
Omni Gallery
Requires php7+
Omni Gallery Elements
A developer extension for Omni Gallery. Format display widgets and lightboxes using concrete5 Elements.

Omni Gallery Elements is a developer level Display Widget and Lightbox Overlay extension for Omni Gallery.
Data for each image is passed to a concrete5 element. It is up to you, as a site developer, to code your own element to format images and information and then select your element in the edit dialog. Omni Gallery will then use your element to show in the Display Widget or Lightbox Overlay .
Once installed, you will have variations of existing Display Widgets and Lightbox Overlays. These function in the same way as the core Omni Gallery items they are based on.
The difference is, rather than configuring the image display and supporting information directly in the Omni Gallery edit dialog, data is passed to a concrete5 element which becomes fully responsible for presenting the image and supporting information for display.
In its basic use, Omni Gallery Elements provides an edit dialog for selecting an element and mapping data to the element. As a developer, it is up to you to code your own element to format images and information and then select your element in the edit dialog. A more advanced use is to map data to an element and wrap it in a scaled box. This scales all pulled elements to the same size, so facilitating the creation of galleries and sliders from disparate element content.
Omni Gallery Elements provides some basic elements. These are intended as diagnostic aids and examples of how to use data The real power of Omni Gallery Elements is when you provide your own elements for display. You are not limited to the URL/ Title/ Description/ Extended Description that Omni Gallery uses You can pull in other attributes, multiple images and pretty much anything you can imagine. Then show it in a slider or gallery.
Get it FREE
Omni Gallery Elements requires Omni Gallery and is free to those who have purchased Omni Gallery. Just send me your Omni Gallery license details and I will grant you a free license to this extension, or purchase the suite for the cost of Omni Gallery in the Omni Gallery Complete offer.
Extension
Omni Gallery is designed for extension. Image sources and display widgets follow a pluggable and extensible architecture for easy integration of further sources, transforms and displays from within Omni Gallery or provided by third party packages or your own application specific plugins.
Omni Gallery Elements makes this extension even easier. You only need to code an element, then use the sliders and galleries provided by Omni Gallery to display that element.

Omni Gallery Elements
jl_omni_gallery_elements - v9.0.0
Use Concrete CMS Elements with Omni Gallery Display Widgets and Lightboxes to provide fine control of individual gallery item content, layout and style.

Omni Gallery
jl_omni_gallery - v9.0.5 - resources v9.0.2
A massively flexible gallery and slider system. Multiple ways to select images. Multiple ways to display them. Easily expandable with further image selections and display widgets.
-
Omni Gallery
/dashboard/blocks/omni_gallery
A massively flexible gallery and slider system. Multiple ways to select images. Multiple ways to display them. Easily expandable with further image selections and display widgets. -
Omni Gallery Global Settings
/dashboard/blocks/omni_gallery/global_settings
Edit global settings and defaults for the omni gallery block. -
Omni Gallery Plugins
/dashboard/blocks/omni_gallery/plugin_list
Plugins for Image Selectors, Display Widgets and Lightbox Overlays.

Omni Gallery for Community Store
jl_omni_gallery_community_store - v1.0.1
Community Store Product and Product List image sources for Omni Gallery. Use Omni Gallery to display your Community Store product images using Omni Gallery's many Display Widgets and Lightbox Overlays.
Omni Gallery Elements
Requires php7+
Omni Gallery for Community Store
These Image Selectors require Community Store is installed on your site.
Use any of Omni Gallery's Display Widgets to showcase your Community Store products and product lists.
Omni Gallery for Community Store is an Image Selector extension for Omni Gallery. The selectors in this extension are specific to Commnuity Store and will be of no use to sites where community store is not installed.
Once installed, you will have new image selectors:
- Selected Product Dynamic - Source images from the product properties and attributes of a selected product or the current product.
- Product List Dynamic - Source images from the product properties and attributes of products in a product list.
With these selectors you can display product images and product list images as galleries, sliders, carousels and lightboxes using any of Omni Gallery's display widgets.
You are not limited to product images. You can also pull in images from any product file or fileset attribute.
Get it FREE
Omni Gallery for Community Store requires Omni Gallery and is free to those who have purchased Omni Gallery. Just send me your Omni Gallery license details and I will grant you a free license to this extension, or purchase the entire suite for the cost of Omni Gallery in the Omni Gallery Complete offer.
Extension
Omni Gallery is designed for extension. Image sources and display widgets follow a pluggable and extensible architecture for easy integration of further sources, transforms and displays from within Omni Gallery or provided by third party packages or your own application specific plugins.

Omni Gallery for Community Store
jl_omni_gallery_community_store - v1.0.1
Community Store Product and Product List image sources for Omni Gallery. Use Omni Gallery to display your Community Store product images using Omni Gallery's many Display Widgets and Lightbox Overlays.

Omni Gallery
jl_omni_gallery - v9.0.5 - resources v9.0.2
A massively flexible gallery and slider system. Multiple ways to select images. Multiple ways to display them. Easily expandable with further image selections and display widgets.
-
Omni Gallery
/dashboard/blocks/omni_gallery
A massively flexible gallery and slider system. Multiple ways to select images. Multiple ways to display them. Easily expandable with further image selections and display widgets. -
Omni Gallery Global Settings
/dashboard/blocks/omni_gallery/global_settings
Edit global settings and defaults for the omni gallery block. -
Omni Gallery Plugins
/dashboard/blocks/omni_gallery/plugin_list
Plugins for Image Selectors, Display Widgets and Lightbox Overlays.

Omni Gallery Elements
jl_omni_gallery_elements - v9.0.0
Use Concrete CMS Elements with Omni Gallery Display Widgets and Lightboxes to provide fine control of individual gallery item content, layout and style.
Omni Gallery for Community Store
Package Magic
Package Magic is a suite of tools for site owners and developers who use packages. Once Package Magic is installed, you can forget about the inconvenience of using your development system file manager and zip tools, the CLI, and FTP or SSH to generate and deploy packages. Package Magic enables you to do everything from the dashboard.
Package Magic brings convenience and speed to zipping new versions of your packages and deploying them to your websites or the ConcreteCMS marketplace. If you save 10 or 15 minutes for each package update, those minutes soon add up to hours or even days saved when put into the context of a large web site development project
With a few clicks from the dashbaord you can:
- Zip up packages ready for distribution.
- Upload and install package zip archives.
- Copy packages between sites.
- Run a suite of package build, validation and management tools.
- Maintain a private repository of packages.
Once Package Magic is installed, you can forget about the inconvenience of using your development system file manager and zip tools, the CLI, FTP or SSH to generate and deploy packages.
If you develop concrete5 packages for your customer projects or for the marketplace, Package Magic can save you a lot of time. Even if you are a command line guru, Package Magic will still save you time on every project.
Troubled by operating system files, .dot files, Thumbs.db, IDE or composer configuration and hidden directories getting zipped up with your packages? Package Magic creates clean zip files without any of the crud. From third party packages, it can detect unwanted files and clean them out before installing.
You have full control over what does and doesn’t get included in a package archive or extracted from a package archive by simple checkbox and file path-matching rules.
Package archives can be:
- Directly uploaded/downloaded,
- Loaded from or saved to a file,
- Loaded from a URL,
- Loaded from or saved to FTP/SFTP,
- Loaded from a GitHub repository,
- Loaded from or saved to the dashboard file manager,
- Loaded from or saved to a local repository directory organised by package and version number,
- Direct from the Marketplace PRB (for PRB members only)
To help you prepare packages for download, Package Magic provides a suite of Package Build Tools including dashboard equivalents to the CLI tools for translation, short tags expansion and SVG icon compilation. Amongst other tools Package Magic can report where blocks and block templates are used, check for Deprecated Code, check JavaScript and CSS for errors, compile LESS and even increment the version in the package controller with a comment noting when and who by.
The functionality of Package Magic is broadly split into tool areas:
- Package Magic - Package Source Documentation
- Package Magic - Package Destination Documentation
- Package Magic - Build Tool Plugin Documentation
- Package Magic - Prohibited Code Check Plugin Documentation

Package Magic
jl_package_magic - v1.9.3 - resources v9.0.2
Generate, check, upload, install and manage package zip files from your site dashboard.
-
Download Package
/dashboard/extend/download
Generate a package zip archive and download it. -
Package Tools
/dashboard/extend/build
A colection of tools to help build parts of a package including translation files and icons. -
Package Magic Plugins
/dashboard/extend/plugin_list
Plugins provide interfaces to package sources and destinations.

Package Magic Starter
jl_package_magic_starter - v1.9.3 - resources v9.0.2
Upload, validate and install packages. Package Magic Starter also provides a foundation for the full version of Package Magic. The full version of Package Magic provides a comprehensive toolset for managing package building, validation, creation and deployment.
-
Upload Package
/dashboard/extend/upload
Upload a package zip archive.

Package Magic PRB
jl_package_magic_prb - v1.9.0
Integrate a PRB source for packages to Package Magic. This source is only relevant to current PRB members. List PRB submissions and install them directly to your PRB test site. You will be required to copy two ConcreteCMS cookies from your browser developer console. These will saved encrypted.
Package Magic
Plugin System
Many of my more advanced packages use a sophisticated plugin mechanism for easy expansion, both within the package and across packages. If you are already a user of my packages, you may already have met this documentation system in the 'plugins' dashboard pages such packages provide.
Built in Documentation
The plugin system includes built in documentation. If you have used any of these addons, you will have seen the user documentation in the associated plugin select dialogs and in the dashboard plugin list pages.
The same documentation is displayed on thgis site here using Package Magic. While Package Magic is primarily a dashboard tool, it also provides a block that can be used to create documentation pages for any use of my plugin systems on the front end of a site.
That block is used on this site to provide the latest documentation for Package Magic and other addons.
Plugin Permissions
At a basic level, any plugin can be enabled or disabled in the associated dashboard listing page. Such enable/disable is only available to the site admin user and simply makes a plugin unavailable throughout the site.
Where a site has multiple administrators or editors, sometimes a more sophisticated access to plugins is required. For example, with Universal Content Puller, perhaps you need to use a URL or Any Database source on a few pages, but you don't want any old site editor to have that capability. At the same time, you would like your editors to be able to pull areas between pages.
The plugin system includes an option to apply permissions to individual plugins. When plugin permissions are enabled, the dashboard management pages for plugins show buttons for the site admin user to allow or deny permission for users or groups to use any individual plugin in a dialog with the familar concrete5 permissions dialogs.
Plugin permissions can also be enabled directly in config data at application/config/generated_overrides/jtf_resources.php with the key 'plugin_permissions_enable' => 1. For some addons, the application of permissions can also be controlled by a checkbox at the bottom of the Support tab of the edit dialog.
Plugin permissions are enabled globally, not just for individual packages. Enable plugin permissions in any one addon and you will have plugin permissions in all supporting addons installed on your site.
Unlike concrete5's advanced permissions, this is not a one-way decision. If you want to experiment or decide you no longer need to use plugin permissions, simply clear the setting and plugin permissions will be ignored.
Block Default Settings
Rather than be stuck with the default settings as a strating point when adding a block, blocks that use the plugin system will have a dashboard edit dialog for editing default settings. This will look generally like the block edit dialog, but in a dashboard page, typically in amongst the Stacks & Blocks dashboard section and will be named somethimng like Global Settings.
After editing and saving the defaults, from now on whenever you add a block to a page the initial settings of the block add dialog will be the new defaults you have saved. A big time saver if you have many blocks to add with similar settings.
A further opion in the block edit dialog is a simple checkbox to use the global settings. When checked and saved, the block continue to use whatever the global settings are. This provides an easy way to centrally manage the settings across many blocks. For example, if you add the Reviews blocks to a page, you can manage them all centrally through the global settings.
Settings Export and Import
Many addons that use the plugin system provide a facility to Export settings from a block as JSON and then Import the settings, either on the same site or on another site. When used with caution, this can be a great way to transfer between development, staging and production sites.
Where supported, the Export and Import settings buttons can be found in the Support tab of the block edit dialog.
A related option is a View settings button that can be shown in the front end view of a block to enable site visitors to view and copy settings. Where supported, this is typically enabled from amongst a block's developer settings.
Easy Setup
- On this site find an example similar to what you require, click the View settings button, copy the settings JSON.
- On your page, add a block. On the Support tab click the button to Import settings, paste the settings JSON and import,
- Edit the settings to what you require.
As well as simply copying and pasting the JSON as text, the settings can also be downloaded to and uploaded from files, or stored with a name in the Concrete database. When stored in the database, the name must be at least 5 characters long.
Custom Plugins
The plugin system is open to all developers for extension of my addons. Any developer is welcome to provide plugins for my addons within their own packages or create application specific plugins where my addons are used on their customer sites.
Plugins are created simply by placing a compatible class in a specific directory of your own package or /application/ space, following the same directory structure as the package that provides that plugin type. The new plugin class needs to inherit from the base class for that plugin type or another plugin of that type. Details are provided by comments in the code for the base class and existing plugins.
For example, in Universal Content Puller, new Content Source plugins should inherit from ContentSourcePluginBase and should be located at either:
- packages/yourPackageName/src/JtF/UCP/ContentSources/Plugins/PluginName
- application/src/JtF/UCP/ContentSources/Plugins/PluginName.
Content sources should be in the namespace JtF\UCP\ContentSources\Plugins. In fact, if you configure the plugin type's namespace in your package autoload registries, the plugin can be located in any mapped directory, but its best to stick to the conventions.
Other types of plugin across all packages that use my plugin mechanism follow a similar pattern.
Plugins will be automatically 'discovered' by the plugin system by visiting the associated dashboard page. If you want to be more sophisticated, discovery can be initiated during package installation or upgrade by calling the listAll(true) method on the respective manager/controller for the plugin type. You can see examples of that in my package controller classes.
Problem solving
Cache path exceeds...
A windows system can throw an exception about cache path length. The full message will be something like "Cache path exceeds Windows PHP MAX_LENGTH of 260 characters" and the name of the exception is WindowsPathMaxLengthException.
This arises as a combination of ConcreteCMS and php internal issues. From JtFResources v2.19.32 we have a work-round for this by introducing the configuration value max_key_length in the file application/config/generated_overrides/jtf_resources.php. On windows, this will be automatically set to a value suitable for most windows installations.
If you experience the above exception:
- Check the version of JtFResources is v2.19.32. If not, update this addon.
- Check the value of max_key_length. It may not be configured for your installation if it has been copied from another site.
- Reduce the value of max_key_length until you cease experiencing the WindowsPathMaxLengthException.
In general, keep the value of max_key_length as high as practical for your installation. The ConcreteCMS core applies a hashing algorithm to all cache keys and a longer value for max_key_length reduces the (already extremely small) probability of cache key collisions.
Plugin System
Reviews
A comprehensive reviews and ratings sytem.
Review:
- Pages
- Images
- Extensible to review other types
Blocks for:
- Review submission
- Review results
- Page List by review rating
Attributes for:
- Retrieving page review rating
Dashboard pages:
- Review Management
- Review Entry Global Settings
- Review Display Global Settings
- Subject Plugin documentation
- Visitor Form Plugin documentation
- Review Summary Plugin documentation
Enable visitors to post reviews. Configure comprehensive anti-spam measures and optionally approve reviews before they are posted and respond to reviews.
Get the Reviews Package
This package is not available through the concrte5 marketplace. Contact me directly

Reviews
jl_reviews - v0.2.1 - resources v2.14.2
Visitors post reviews. You approve reviews through the dashboard.
- Page Review Rating
- File Review Rating
- Page Reviews
- File Reviews
- Review Rating Collection File Site Type
-
Reviews
/dashboard/reviews
Visitors post reviews. You approve reviews through the dashboard. -
Review Management
/dashboard/reviews/review_management
Manage review approval. -
Review Entry Global Settings
/dashboard/reviews/review_entry_global_settings
Edit global settings and defaults for the review entry block. -
Review Display Global Settings
/dashboard/reviews/review_display_global_settings
Edit global settings and defaults for the review display block. -
Subject Plugins
/dashboard/reviews/subject_plugins
Plugins for what is being reviewed. -
Visitor Form Plugins
/dashboard/reviews/visitor_form_plugins
Plugins for the forms site visitors use to post a review. -
Review Summary Plugins
/dashboard/reviews/review_summary_plugins
Plugins to provide a sumamry of a review.
Reviews
Safe HTML
If an HTML block contains broken HTML or faulty JavaScript, it could break a page or if in a gloabl area even break an entire site!
This package provides a simple Safe template for the core HTML block. By assigning the Safe block template, the HTML is escaped in edit mode. So as long as you can get into edit mode, you will always be able to see where the broken block is and and edit it.
If you have trouble getting into the the page to edit it, you can hack a configuration value in the file application/config/generated_overrides/safe_html.php and set 'panic' => true. This will render the safe view no matter what, so you can edit the page and fix your faulty html. Remember to reset 'panic'=>false afterwards.
This is not a complete solution, but does present an option for doing dangerous things in a safer way.
For a cleaner way to add JavaScript to a site, Script Output is recommended.
This Safe template for the HTML block is not designed for showing code samples. If that is your requirement, see Syntax Anywhere.
See more addons by JohntheFish.

Safe HTML
jl_safe_html - v7.0
A safe template for HTML blocks that do dangerous things. If stuck, edit application/config/generated_overrides/safe_html.php and set 'panic' => true.
Safe HTML
Site Sniffer
Keep track of multiple ConcreteCMS sites and packages on your development system.
No matter how well I have my development system organised, keeping track of all the sites , packages and package versions I have on my development system for different customers, different core versions, for the marketplace and for the PRB is an impossible process.
Site Sniffer is a package for agencies and serious developers to help keep track of all the ConcreteCMS sites on their development systems. Install Site Sniffer and a handy dashboard page provides a list of all the sites on the same system with live controls to search, sort and filter.
Sites are analyzed and marked for:
- Core Version
- Current Site - the current site
- Database Verified - installed with a database
- No Database - CMS source files present and apparently configured, but the corresponding database cannot be found (typically a files backup of another site)
- Not Local - configured for a non-local database (typically a files backup of an online site)
- Incomplete - missing configuration information, so Site Sniffer is unable to tell if there is a database or not (typically unzipped but never installed, but could also be faulty configuration data)
- Packages (by package handle)
- Package versions
Site Sniffer has been developed on the latest ConcreteCMS v9 and engineered and tested for backward compatibility all the way back to core version 5.7.0.4. It can sniff out sites all the way back to core version 5.4.
Whilst Site Sniffer will work on a live web server, typical server permissions may limit its capabailities. Some may also consider the information provided by Site Sniffer a security risk. So please think very carefully before installing Site Sniffer on live web site.
If you also have Package Magic, Site Sniffer provides extensions to check packages against other sites on the same server.
Special License Addition
Whilst Site Sniffer comes with the standard ConcreteCMS marketplace license, a single licence is extended for unlimited installation on any single development system computer. Purchasers may install site sniffer on any number of sites within a single development system.
Site Sniffer
Snapshot
Streamline your image workflow
Snapshot provides a suite of device/browser tools for capturing images, from webcams, from screengrabs and by drag and drop. These tools can be attached to buttons in the dashboard toolbar, for example, for use by Administrators. Each tool is also available through an associated block for use on your site pages by any user with permission.
Snapshot tools can be inserted into the dashboard bar or added with blocks. Captured images can be edited, annotated and imported directly into the concrete5 File Manager.
Use a device camera or attached Webcam to snap images. Capture Screengrabs from the web page or any screen or window. Drag and drop uploader for files and images (many enhancements over core uploader).With an image captured, you can then add a title and description and even edit or annotate the image itself before uploading to the File Manager.
Flexible uploading rules provide complete control of how files are named and which folders and filesets they are uploaded to. Each upload can be a new file or replace an existing file.
For example, the screengrab here was captured with the Snapshot Screengrab tool as this content was being edited!

For each image capture tool Snapshot provides:
- A dashboard toolbar button that is configured through an associated dashboard page.
- A block to add a button directly into a page.
Some use-cases:
- Enable users to update mugshot images or avatars from their webcam.
- Use a mobile device camera to take photographs and import directly to the File Manager.
- Quickly add screengrabs to your documentation (as above).
- Enable users to upload screengrabs for support requests.
- A more front-end user focussed workflow for any image or file upload.
- Quickly upload/add images to blog posts.
The snapshot tools use web APIs for image capture, so may not be available on older browsers that do not support the APIs. Links to browser support matrices are provided from the Snapshot Tools page.
In the sidebar are each of the snapshot tool blocks. Uploading images is disabled, so feel free to have a play with each of the tools and think about how your web sites can benefit from them!


Snapshot
jl_snapshot - v1.10.0
A suite of advanced image capture and upload tools. Enhanced drag and drop file uploading. Make screengrabs from within concrete5. Capture images directly from device webcams. Edit images before uploading.
Browser support is generally good for all current major browsers, but there will be some dinosaurs still on ancient versions of IE, other obsolete browsers and some mobile devices that cannot use some of this functionality.
- Use Snapshot Webcam
- Use Snapshot Screen Capture
- Use Snapshot Drag & Drop uploader
-
Snapshot Settings
/dashboard/system/snapshot
Enhanced drag and drop uploading. Make screengrabs from within concrete5. Take photographs directly from device webcams. Edit images before uploading. Browser support is generally good for all current major browsers, but there will be some dinosaurs still on ancient versions of IE and other obsolete browsers that cannot use some or all of this functionality. -
Webcam
/dashboard/system/snapshot/webcam
Webcam dashboard settings for Snapshot -
Screengrab
/dashboard/system/snapshot/screengrab
Screengrab dashboard settings for Snapshot -
Drag Drop
/dashboard/system/snapshot/dragdrop
Drag Drop dashboard settings for Snapshot
Snapshot
Syntax Anywhere
Syntax Anywhere is the ideal companion for writing about code. Simply paste code fragments into your content and Syntax Anywhere will highlight it for you.
Add Syntax Anywhere to a site and it will find and highlight sections of code or markup within any block you can write fragments of code into, whatever the programming or markup language. Using checkboxes and/or css selectors, you have complete control of what Syntax Anywhere highlights on your page.
Syntax Anywhere works with any block that supports the tags and markers it can key on. With Syntax Anywhere you can highlight syntax in:
- Content blocks
- HTML blocks
- Many derivatives of content blocks
- Blog posts
- Forum posts
- Blocks that display markdown
- Blocks you have created using Block Designer or Chisel
Add a Syntax Anywhere block to just one page or click a dashboard setting and enable Syntax Anywhere for all pages on your site.
Syntax Anywhere provides a massive selection of syntax processing libraries and themes so you can easily pick a highlighting theme to match your site. At last count, approximately 250 language syntaxes are supported between the various syntax processors.
Syntax Anywhere uses an advanced package architecture to provide:
- A dashboard page to manage global default settings for Syntax Anywhere blocks.
- Any block can have its own settings or track the global settings.
- Export and Import block and global settings and copy them between sites.
- Built in documentation pages.
- Plugin architecture for easy extension. If the existing syntax processors and themes are not enough, you can implement your own interface to many more.
In highlighted HTML
Here we have the above desription, as syntax highlighted HTML.
<p><strong>Syntax Anywhere</strong> is the ideal companion for writing about code. Simply paste code fragments into your content and <strong>Syntax Anywhere</strong> will highlight it for you.</p> <p>Add <strong>Syntax Anywhere</strong> to a site and it will find and highlight sections of code or markup within any block you can write fragments of code into, whatever the programming or markup language. Using checkboxes and/or css selectors, you have complete control of what <strong>Syntax Anywhere</strong> highlights on your page.</p> <p><strong>Syntax Anywhere</strong> works with any block that supports the tags and markers it can key on. With Syntax Anywhere you can highlight syntax in:</p> <ul> <li>Content blocks</li> <li>HTML blocks</li> <li>Many derivatives of content blocks</li> <li>Blog posts</li> <li>Forum posts</li> <li>Blocks that display markdown</li> <li>Forum posts</li> <li>Blocks you have created using Block Designer or Chisel</li> </ul> <p>Add a <strong>Syntax Anywhere</strong> block to just one page or click a dashboard setting and enable <strong>Syntax Anywhere</strong> for all pages on your site.</p> <p><strong>Syntax Anywhere</strong> provides a massive selection of <a href="https://c5magic.co.uk/addons/syntax-anywhere/syntax-processor-documentation">syntax processing libraries</a> and themes so you can easily pick a highlighting theme to match your site. At last count, approximately 250 language syntaxes are supported between the various <a href="https://c5magic.co.uk/addons/syntax-anywhere/syntax-processor-documentation">syntax processors</a>.</p> <p><strong>Syntax Anywhere</strong> uses an advanced package architecture to provide:</p> <ul> <li>A dashboard page to manage global default settings for Syntax Anywhere blocks.</li> <li>Any block can have its own settings or track the global settings.</li> <li>Export and Import block and global settings and copy them between sites.</li> <li>Built in documentation pages.</li> <li>Plugin architecture for easy extension. If the existing syntax processors and themes are not enough, you can implement your own interface to many more. </li> </ul>

Syntax Anywhere
jl_syntax_anywhere - v9.0.0 - resources v9.0.0
Apply syntax formatting anywhere on a page, including sections within the content of other blocks.
-
Syntax Anywhere
/dashboard/blocks/syntax_anywhere
Apply syntax formatting anywhere on a page, including sections within the content of other blocks. -
Syntax Processor Plugins
/dashboard/blocks/syntax_anywhere/plugin_list
Apply syntax formatting anywhere on a page, including sections within the content of other blocks. -
Global Settings
/dashboard/blocks/syntax_anywhere/global_settings
Edit global settings and defaults for Syntax Anywhere.
Syntax Anywhere
Universal Content Importer
Universal Content Importer is a dashboard utility that utilises Universal Content Puller to pull content and files in bulk from any site. Corresponding pages are created within the ConcreteCMS site, with the pulled content added to blocks on those pages.
Where blocks cannot be fully added, UCI provides a comprehensive notification and review system to facilitate manual addition of that last little bit.
Once installed, you will have:
- UCI Dashboard pages - dashboard pages for configuring and running the import pipeline.
- UCP content sources, trandforms and displays - additional sources, transforms and displays for Universal Content Puller to facilitate the import and review process.
- Notification block - a block added at the top of any page where fully automated creation of content was not possible or where assumptions have been made and require review.
- Notifications attribute - a user attribute that any site editor can configure to limit the notifications they need to see.
- Placeholder block - a block inserted into the content of a page where further action is required to add a block for pulled content. For example, where a form is encountered.
- Review Navigation block - place this block in a global header and/or footer to navigate forewards/backwards between puilled pages or to open the original source in a separate browser tab.
Universal Content Importer uses DOM selectors to home in on the section(s) of the source site to import. Thus it requires a source site that has some regularity in the way its DOM is organised. This is a reasonably dependable assumption for sites that were generated by a CMS or other site generator, but may become less dependable for sites of hand-written html.
Where blocks cannot be automatically generated, UCI places a Notification block summarising what review and completion actions are required at the top of the imported area. UCI then inserts Placeholder blocks into the page where blocks need to be added manually.
UCI will not import a source site fully automatically, but if it can do 90% of the work for you and point you to where additional work is required, reviewing and fixing the last 10% can still save many days or even weeks of editing pages when converting a large site to ConcreteCMS.
During the review process, the UCI blocks can be manually removed from individual pages as they are completed. Alternatively, they can be left in place and hidden from visitors using Advanced Permissions, or the UCI blocks can be left in place and removed in bulk by uninstalling the blocks or UCI in the dashboard.
Once the import process is completed and fully reviewed, Universal Content Importer can be safely uninstalled and is in no way required for continued operation of the site.
Please respect copyright ©
Just because you can import content in bulk from another site does not mean you can legally do so. Plese respect the copyright of others. Only import content where:
- You own the site.
- You are importing the content on behalf of the site owner.
- You have permission to do so from the owner of the content.
Extension
Universal Content Importer is built on top of Universal Content Puller and designed for extension using similar mechanisms. Content sources, transforms and displays follow a pluggable and extensible architecture for easy integration of further sources, transforms and displays from within UCP or provided by third party packages or your own application specific plugins.
How to get Universal Content Importer
Universal Content Importer is only available direct from JohntheFish. Please contract me to discuss.

Universal Content Importer
jl_universal_content_importer - v0.3.3
A general purpose content importer for batch importing pages and images from any site. Internally uses Universal Content Puller, so installing Universal Content Puller is a prerequisite.
- UCI Notifications
- Universal Content Importer
- UCI Notifications User Site Type
-
Universal Content Importer
/dashboard/blocks/universal_content_puller/universal_content_importer
A general purpose content importer for batch importing pages and images from any site. Internally uses Universal Content Puller, so installing Universal Content Puller is a prerequisite. -
Universal Content Importer
/dashboard/pages/universal_content_importer
A general purpose content importer for batch importing pages and images from any site. Internally uses Universal Content Puller, so installing Universal Content Puller is a prerequisite. -
Importer Settings
/dashboard/pages/universal_content_importer/settings
Settings for each stage of the importer process. -
Import Remote Sitemap
/dashboard/pages/universal_content_importer/settings/import_remote_sitemap
Import a remote sitemap into the UCI workspace to pull content from. -
Grab Remote Pages
/dashboard/pages/universal_content_importer/settings/grab_remote_pages
Add HTML content to the UCI workspace. -
Metadata
/dashboard/pages/universal_content_importer/settings/metadata
Optionally add further page data not provided by Import Remote Sitemap -
Create Pages
/dashboard/pages/universal_content_importer/settings/create_pages
Create or update local concrete5 pages based on remote URLs. Blocks are added later. -
List Images
/dashboard/pages/universal_content_importer/settings/list_images
Extract a list of images required for URLs in the UCI Workspace. -
Import Images
/dashboard/pages/universal_content_importer/settings/import_images
Import images to the concrete5 File Manager based on image URLs listed in the UCI Workspace. -
List Documents
/dashboard/pages/universal_content_importer/settings/list_documents
Extract a list of documents linked by URLs in the UCI Workspace. -
Import Documents
/dashboard/pages/universal_content_importer/settings/import_documents
Import documents to the concrete5 File Manager based on document URLs listed in the UCI Workspace. -
Extract Blocks from Pages
/dashboard/pages/universal_content_importer/settings/extract_blocks_from_pages
HTML grabbed from remote pages is parsed to extract Content and other blocks. -
Add Blocks to Pages
/dashboard/pages/universal_content_importer/settings/add_blocks_to_pages
Extracted blocks are added to local pages.

Universal Content Puller
jl_universal_content_puller - v9.1.1 - resources v9.1.1*
Pull content from many sources and display it in many ways.
-
Universal Content Puller
/dashboard/blocks/universal_content_puller
Pull content from many sources and display it in many ways. -
Plugins
/dashboard/blocks/universal_content_puller/plugins
Plugins for the Universal Content Puller block -
Global Settings
/dashboard/blocks/universal_content_puller/global_settings
Edit global settings and defaults for the Universal Content Puller block.

Universal Content Puller XX Sources
jl_universal_content_puller_xx_sources - v9.0
Sources extension for Universal Content Puller. The sources in this extension are XX because they are the kind of source you may not want to let just anyone loose with, hence a separate package so they don't have to be installed with less sensitive sources.
Universal Content Importer
Requires php7+
Universal Content Puller

Pull content from many places. Transform it in many ways. Display it in many ways.
Universal Content Puller can pull content from a range of Content Sources, transform that pulled content using a range of Content Transforms, then display the transformed content using a range of Content Displays.
Once installed, you will have:
- A Universal Content Puller block in the Basic block group.
- Dasboard pages at Dashboard > Stacks & Blocks > Universal Content Puller
Some of the things you can do with Universal Content Puller:
- Use Parent Area to implement a set of common sidebars for each region of your site, in the same way as UCP has been used to provide a common sidebar for these documentation pages.
- Use Child Area to prepend a blog list with some actual content from the most recent blog post.
- Use Page Area to show a selected area or snippet of content from another page.
- Show third party CSV files as formatted tables.
- Show CSV files in the concrete5 file manager as formatted tables.
- Pull in snippets of content and tables from other sites.
- Display tabular data as a Chart - requires Universal Content Puller Charts
- Generate page lists and user lists with full control of what information is displayed.
- For quick display development, use a simple Element file to format all data or each item in a list - requires Universal Content Puller Elements (Free).
- Pull files of data from anywhere on the web or from the concrete5 file Manager.
- Show JSON data as formatted lists or tables.
- Embed JSON data in a page for use with your own JavaScript.
- Extract data from XML or RSS feeds and show it in lists or tables.
- Pull using SQL from any database - requires Universal Content Puller XX Sources (Free).
- Filter any tabular data with an SQL query - requires Universal Content Puller XX Sources (Free).
- Do any of the above with AJAX.
- Pull anything into a dropdown, lightbox or slideout using Button Nav templates for UCP.
- Use as a basis for integrating any API sourced data.
Have a look through the available Content Sources, Content Transforms and Content Displays. These can be mix and matched for boundless possibilities.
Easy Setup
- On this site find an example similar to what you require, click the View settings button, copy the settings JSON.
- On your page, add a block. On the Support tab click the button to Import settings, paste the settings JSON and import,
- On the advanced tab, clear the radio button that enables the export button. You probably don't want to show that on the front end of your site!
- Edit the settings to what you require. Most importantly, in the Content Source tab, adjust any concrete5 Page, File or User Selection as IDs will change between sites.
Detailed Setup Workflow
1. Select a Content Source to pull
- Stacks and Global Areas
- Areas of pages in the site (by page, parent or child)
- Files from the file manager
- From a page list, user list, express list, calendar event list
- Files from anywhere by path or URL
- From a Google Sheet
- Query any database with SQL - requires Universal Content Puller XX Sources (Free)
2. Transform it with a Content Transform
- Markdown to HTML
- Add line breaks
- Table from CSV, HTML, XML, JSON or Text lines
- Sort a table by row or column
- Extract from CSS or XML by selectors into text or multi-dimensional array
- Build complex transforms with a pipeline. Sort, slice and shuffle tabular data.
3. Display it with a Content DIsplay
- Multi Level List
- Table
- As a Chart - requires Universal Content Puller Charts
- Paragraphs
- Serialized Data
- HTML
- Text
- Embedded JSON data
4. When displaying array data
- Add Headings
- Filter
- Shuffle
- Paginate
5. Advanced
- Direct or AJAX and AJAX marker
- Direct or Cache
- Autolink and Auto-Image
- Block wrapper element and class
- Edit mode and recursion markers
Extension
Universal Content Puller is designed for extension. Content sources, transforms and displays follow a pluggable and extensible architecture for easy integration of further sources, transforms and displays from within UCP or provided by third party packages or your own application specific plugins. Customized display is now even easier with Universal Content Puller Elements.

Universal Content Puller
jl_universal_content_puller - v9.0.4 - resources v9.0.2*
Pull content from many sources and display it in many ways.
-
Universal Content Puller
/dashboard/blocks/universal_content_puller
Pull content from many sources and display it in many ways. -
Plugins
/dashboard/blocks/universal_content_puller/plugins
Plugins for the Universal Content Puller block -
Global Settings
/dashboard/blocks/universal_content_puller/global_settings
Edit global settings and defaults for the Universal Content Puller block.

Universal Content Puller Charts
jl_universal_content_puller_charts - v1.9.6
Charting extension for Universal Content Puller. If you can pull data to a table, you can show it in a chart!

Universal Content Puller XX Sources
jl_universal_content_puller_xx_sources - v9.0
Sources extension for Universal Content Puller. The sources in this extension are XX because they are the kind of source you may not want to let just anyone loose with, hence a separate package so they don't have to be installed with less sensitive sources.

Universal Content Puller Elements
jl_universal_content_puller_elements - v1.0
Use Concrete CMS Elements for Content Display in Universal Content Puller to provide customised display of pulled content.

Universal Content Puller Attribute
jl_universal_content_puller_attribute - v0.9.1
An attribute to select from previously stored Universal Content Puller settings and render the pulled content.
- UCP Stored Setting Collection
Universal Content Puller
Requires php7+
Universal Content Puller Attribute
An attribute to display content pulled with Universal Content Puller.

Universal Content Puller Attribute is an extension for Universal Content Puller and requires Universal Content Puller v9.0.3 to be installed. Once installed, a UCP Stored Setting attribute type will be available for Collections/Pages. This attribute type selects from previously stored Universal Content Puller settings and renders the pulled content when the attribute type is displayed.
The UCP Stored Setting attribute type has a minimal edit form to work with previously stored Universal Content Puller settings. Settings can be stored using the Export button from any Universal Content Puller block or global settings edit dialogue and then selecting the Save to store option. This will create or update a stored setting (setting names must be at least 5 characters).
All such stored settings are then available for selection with a UCP Stored Setting attribute. The attribute form provides a simple select between all previously stored Universal Content Puller ​​settings.
When a UCP Stored Setting attribute is displayed, the selected Universal Content Puller settings are evaluated and the pulled content displayed.
In its simplest form, this can be the core Attribute Display block, but you can use a UCP Stored Setting attribute in any other places you would display an attribute.
Considerations on use
- Universal Content Puller's Ajax rendering is disabled. Pulled content is rendered immediately.
- Pagination within pulled content is disabled. Where pulled content would have been paginated, the first page is shown.
- If content display requires JavaScript assets to be loaded, for example, to show a chart, the block cache for any displaying block must be disabled (in Advanced settings of the edit mode menu) to allow the attribute view to load the assets.
- When using the core Attribute Display block, multi-line formatting must be 'none'. Alternatively, use the Raw template bundled with this package.
- The UCP Stored Setting attribute type can be used with categories other than Collection/Page, such as Express and Users, but is not enabled for such during installation. See Dashboard > System & Settings > Attributes > Types.
Get it FREE
Universal Content Puller Attribute requires Universal Content Puller and is free to those who have purchased Universal Content Puller . Just send me your Universal Content Puller license details and I will grant you a free license to this extension.
Extension
Universal Content Puller is designed for extension. Content sources, transforms and displays follow a pluggable and extensible architecture for easy integration of further sources, transforms and displays from within Universal Content Puller or provided by third party packages or your own application specific plugins.
Universal Content Puller Attribute provides a way to show content pulled using UCP wherever you can show an atrtibute.

Universal Content Puller Attribute
jl_universal_content_puller_attribute - v0.9.1
An attribute to select from previously stored Universal Content Puller settings and render the pulled content.
- UCP Stored Setting Collection

Universal Content Puller
jl_universal_content_puller - v9.0.4 - resources v9.0.2*
Pull content from many sources and display it in many ways.
-
Universal Content Puller
/dashboard/blocks/universal_content_puller
Pull content from many sources and display it in many ways. -
Plugins
/dashboard/blocks/universal_content_puller/plugins
Plugins for the Universal Content Puller block -
Global Settings
/dashboard/blocks/universal_content_puller/global_settings
Edit global settings and defaults for the Universal Content Puller block.

Universal Content Puller XX Sources
jl_universal_content_puller_xx_sources - v9.0
Sources extension for Universal Content Puller. The sources in this extension are XX because they are the kind of source you may not want to let just anyone loose with, hence a separate package so they don't have to be installed with less sensitive sources.

Universal Content Puller Charts
jl_universal_content_puller_charts - v1.9.6
Charting extension for Universal Content Puller. If you can pull data to a table, you can show it in a chart!

Universal Content Puller Elements
jl_universal_content_puller_elements - v1.0
Use Concrete CMS Elements for Content Display in Universal Content Puller to provide customised display of pulled content.
Universal Content Puller Attribute
Requires php7+
Universal Content Puller Charts
If you can pull data to a table, you can show it in a chart!
Export settings
Universal Content Puller Charts is a Content Display extension for Universal Content Puller. Use with any content source and content transform combination that provides tabular data to show that data in a beautiful chart.
Create charts from CSV, JSON, XML, Database Queries, Express Entities, User Lists, Page Lists, Google Sheets and more. Create charts from any data you can pull or extract with Universal Content Puller.
Once installed, you will have a new Content Displays:
- Chart From Table - Display tabular data as a chart using chart.js to plot a chart into a <canvas>
- Chart Key From Table - A more advanced system for creating keys for charts
Chart types supported include:
Within these general types, charts can be filled, stacked, coloured and redesigned in many ways. If you don't see a chart type you need in the examples, contact me and it may be available but just not shown. There are too many possibilities to list them all!
Extension
As an extension to Universal Content Puller, Universal Content Puller Charts is designed for extension. UCP Charts is implemented as Content Display plugin for UCP with a view to extending to interface with further chart libraries and chart types.
If you don't see a chart type you need in the examples, contact me and it may be available but just not shown, or I may be able to add it to Universal Content Puller Charts for you.

Universal Content Puller Charts
jl_universal_content_puller_charts - v1.9.6
Charting extension for Universal Content Puller. If you can pull data to a table, you can show it in a chart!

Universal Content Puller
jl_universal_content_puller - v9.0.4 - resources v9.0.2*
Pull content from many sources and display it in many ways.
-
Universal Content Puller
/dashboard/blocks/universal_content_puller
Pull content from many sources and display it in many ways. -
Plugins
/dashboard/blocks/universal_content_puller/plugins
Plugins for the Universal Content Puller block -
Global Settings
/dashboard/blocks/universal_content_puller/global_settings
Edit global settings and defaults for the Universal Content Puller block.

Universal Content Puller XX Sources
jl_universal_content_puller_xx_sources - v9.0
Sources extension for Universal Content Puller. The sources in this extension are XX because they are the kind of source you may not want to let just anyone loose with, hence a separate package so they don't have to be installed with less sensitive sources.

Universal Content Puller XX Sources
jl_universal_content_puller_xx_sources - v9.0
Sources extension for Universal Content Puller. The sources in this extension are XX because they are the kind of source you may not want to let just anyone loose with, hence a separate package so they don't have to be installed with less sensitive sources.
Universal Content Puller Charts
Requires php7+
Universal Content Puller Elements
A developer extension for Universal Content Puller. Format content display using Concrete CMS Elements.

With Universal Content Puller you can pull content from pretty much anywhere, manipulate and filter it with transforms, then display it with a content display. The bundled content displays are fairly flexible, but sometimes you need a display that does a little bit more than can be achieved with the many options available and a bit of CSS.
A custom display used to require developing a new content display for your site, usually as a variation from an existing display. Now with Universal Content Puller Elements we have an even easier option. Let Universal Content Puller ​​​​​​ do all the heavy lifting and code just a small Concrete CMS element to format the pulled content exactly how you would like it for display.
Universal Content Puller Elements is a developer level content display for Universal Content Puller Once installed, you will have Element and Element List content displays.
In its basic use, Universal Content Puller Elements provides an edit dialog for selecting an element and mapping data from the transform to the element. As a developer, it is up to you to code your own element to format images and information and then select your element in the edit dialog.
Universal Content Puller Elements provides some basic elements as diagnostic aids and as examples of how to use Universal Content Puller Elements. The real power of Universal Content Puller Elements is when you provide your own elements for display. You can pull in any data from the content transform and use it however you like.
- The Element content display renders your element once, so will typically be configured to pass all the data from the transform.
- The Element List content display renders your element once for each item in a list of content passed by the transform, passing data for that item in the list.
All the usual Universal Content Puller options for pagination, ajax, sanitization, linking and cacheing can be applied.
Get it FREE
Universal Content Puller Elements requires Universal Content Puller and is free to those who have purchased Universal Content Puller . Just send me your Universal Content Puller license details and I will grant you a free license to this extension.
Extension
Universal Content Puller is designed for extension. Content sources, transforms and displays follow a pluggable and extensible architecture for easy integration of further sources, transforms and displays from within Universal Content Puller or provided by third party packages or your own application specific plugins.
Universal Content Puller Elements makes this extension even easier. You only need to code an element, then use the sources and transforms provided by Universal Content Puller to supply data to that element.

Universal Content Puller Elements
jl_universal_content_puller_elements - v1.0
Use Concrete CMS Elements for Content Display in Universal Content Puller to provide customised display of pulled content.

Universal Content Puller
jl_universal_content_puller - v9.0.4 - resources v9.0.2*
Pull content from many sources and display it in many ways.
-
Universal Content Puller
/dashboard/blocks/universal_content_puller
Pull content from many sources and display it in many ways. -
Plugins
/dashboard/blocks/universal_content_puller/plugins
Plugins for the Universal Content Puller block -
Global Settings
/dashboard/blocks/universal_content_puller/global_settings
Edit global settings and defaults for the Universal Content Puller block.

Universal Content Puller XX Sources
jl_universal_content_puller_xx_sources - v9.0
Sources extension for Universal Content Puller. The sources in this extension are XX because they are the kind of source you may not want to let just anyone loose with, hence a separate package so they don't have to be installed with less sensitive sources.

Universal Content Puller Charts
jl_universal_content_puller_charts - v1.9.6
Charting extension for Universal Content Puller. If you can pull data to a table, you can show it in a chart!

Universal Content Puller Attribute
jl_universal_content_puller_attribute - v0.9.1
An attribute to select from previously stored Universal Content Puller settings and render the pulled content.
- UCP Stored Setting Collection
Universal Content Puller Elements
Requires php7+
Universal Content Puller XX Sources
Universal Content Puller XX Sources is a Content Sources extension for Universal Content Puller. The sources in this extension are XX because they are the kind of source you may not want to let just anyone loose with, hence a separate package so they don't have to be installed with less sensitive sources.
Once installed, you will have:
- Site database - select data from the site's database.
- Any database - select data from any configured database.
- Site database with form - select data from the site's database with additional query parameters from an on-page form.
- Any database with form - select data from any configured database with additional query parameters from an on-page form.
- SQLite File Manager - Pull content from an SQLite database uploaded to the file manager.
- SQLite File Manager With Form - Pull content from an SQLite database uploaded to the file manager using additional parameters from a form.
- SQLite File Path - Pull content from an SQLite database system file.
- SQLite File Path With Form - Pull content from an SQLite database system file using additional parameters from a form.
To upload an SQLite database to the file manager you will need to enable the file extension in the dashboard at Dashboard > Systen & Settings > Files > Allowed File Types.. This is usually ".db".
You can see a demonstration of the Site Database content source at Example - SQL Data and Site Database with Form at Example - SQL Data with Form.
These sources also make good a starting points for developing custom data sources with more complex database queries. Copy and rename the Site Database or Any Database source for your custom source and then code your more complex query into it.
SQL Extract Transforms
If you need to run a query on data, the SQL sources from Universal Cointent Puller XX Sources are the best solution.
However, data is not always available in a database source. For such situations, Universal Cointent Puller XX Sources also provides the transforms
- SQL Extract - Extract content from tabular data using an SQL expression.
- SQL Extract with Form - Extract content from tabular data using an SQL expression using additional parameters from a form.
The general process is to pull the content source and, if necessary, transform it into a table. This will typically involve a Pipeline transform so an SQL Extract or SQL Extract with Form transform can then follow.
These SQL Extract or SQL Extract with Form transforms work in a similar way to the equivalent SQL sources. Internally, they translate the tabular data into a temporary SQLite database, then run the configured query to extract from the data and pass it onwards to further transforms or to the content display.
Query expressions consequently use the SQLite syntax which has minor differences from MySQL.
Get it FREE
Universal Content Puller XX Sources requires Universal Content Puller and is free to those who have purchased Universal Content Puller. Just send me your UCP license details and I will grant you a free license to Universal Content Puller XX sources, or purchase both for the cost of UCP in the UCP Extended Sources offer, or get the complete UCP Suite with the Universal Content Puller Complete offer.
Extension
Universal Content Puller is designed for extension. Content sources, transforms and displays follow a pluggable and extensible architecture for easy integration of further sources, transforms and displays from within UCP or provided by third party packages or your own application specific plugins.

Universal Content Puller XX Sources
jl_universal_content_puller_xx_sources - v9.0
Sources extension for Universal Content Puller. The sources in this extension are XX because they are the kind of source you may not want to let just anyone loose with, hence a separate package so they don't have to be installed with less sensitive sources.

Universal Content Puller
jl_universal_content_puller - v9.0.4 - resources v9.0.2*
Pull content from many sources and display it in many ways.
-
Universal Content Puller
/dashboard/blocks/universal_content_puller
Pull content from many sources and display it in many ways. -
Plugins
/dashboard/blocks/universal_content_puller/plugins
Plugins for the Universal Content Puller block -
Global Settings
/dashboard/blocks/universal_content_puller/global_settings
Edit global settings and defaults for the Universal Content Puller block.
Universal Content Puller XX Sources
Export settings
Limitations
There are some limitations of this approach.
- If you are lucky enough to catch this page when it is not cached, you will appreciate this from the slow rendering time. With the cache, rendering is not that big an overhead.
- JavaScript for the pages may not be loaded - it all depends on the element.
- JavaScript for the pages may be loaded but not executed - it all depends on the code.
- JavaScript for the pages may interfere - it all depends on the code.
- CSS for the pages may interfere, though as long as they share the same theme that should not be too high a risk.
- This kind of complexity may be too much for some mobile devices.
To minimize risk, you should think carefully about using an element to source active content.
You need a convenient element
To use this technique to display a page list of actual HTML previews, you need a convenient element. Here we have used an element provided by Universal Content Puller.
Another addon that provides suitable elements for building a gallery of page elements is Enlil Page Tease.
Not just page list previews
The technique is not limited to page lists and previews. This is just an example. Coding a display element is simpler than coding many block view templates, so you can create galleries and sliders of pretty much anything, with or without images.
No new code was written to create this example. It was built entirely using addon settings and existing components.
Additional Pages
- Getting Started
- Simplifying Omni Gallery
- Image Selectors
- Display Widgets
- Lightbox Overlays
- Simple Examples of Display Widgets
- Showing Massive Galleries
- Image Backgrounds and Borders
- Swiper Variations
- Full Page Background with Vegas
- Background instead of overlay
- Hero Sliders
- User and User List image selectors
- Page and Page List image selectors
- Product and Product List image selectors
- Attribute Sources
- Extending Omni Gallery
- Basic Element Display
- Boxed Element Display
- Problem Solving
- Version History