All about the development of Exponential (CMS) by Graham Brookins, 7x (formerly Brookins Consulting) and our think tank kracker.org.
7x and Graham Brookins are proud to share the news of the release of a rebranded v2.5.0.1 of Exponential Platform Legacy (100% Compatible with eZ Publish Platfom 5.x & eZ Platform Legacy 2.5).
Download it for free here at GitHub: https://github.com/se7enxweb/exponential-platform-legacy/releases/tag/v2.5.0.1
https://github.com/se7enxweb/exponential-platform-legacy/archive/refs/tags/v2.5.0.1.zip
Download it for free here at SourceForge: https://sourceforge.net/projects/exponentialplatformlegacy/files/v2.5.0.1/v2.5.0.1%20source%20code.zip/download
Release posted here on the project website, https://platform.exponential.earth/download
Install it via PHP + Composer Package using: # composer require se7enxweb/exponentialplatformlegacy:v2.5.0.1 --ignore-platform-reqs;
Installation instructions documentation, https://platform.exponential.earth/installation
Free Online Demo of this software including the AdminUI, https://platform.exponential.earth/about/demo
This project uses the remains of the abandoned eZ Publish Platform Software Stack licensed under GPLv2, when updated to php8+ support it resumes working as originally designed despite it's maturity and free and open framework cms values.
We believe in supporting users of legacy software stacks as first class citizens where user freedoms are exalted above the corporate desire to bind users to costly purchases just to use the core product.
Notable Changes (Since eZ Platform Legacy 2.5.0.0 for PHP8):
Updated: Rebranding package UI assets from eZ Platform to Exponential Platform. Updated / Replaced Logos used within AdminUI.
Task name before, "Replacing most front facing branding of text string, 'eZ Platform', 'ezplatform' from the user facing displays in code and templates."
Updated: Bugfix to core distribution app/config/config.yml and composer.json rules which fix content tree browse feature in AdminUI.
Open Source Project Website Content Expanded: https://platform.exponential.earth
To learn more about Exponential, Exponential Platform Legacy and Exponential Basic From 7x and to download the latest version please visit:
- https://exponential.earth
- https://lnkd.in/g284XiWh
To learn more about Exponential Family of CMS Software From 7x and to join the community please visit Share Exponential! @ Visit: https://lnkd.in/gdAHpy-m
7x is now offering turn key Exponential and Exponential Platform Legacy CMS Website Hosting, Design, Development, Training, Long term maintenance and support at https://lnkd.in/gvPkYU8T
Cheers,
Graham Brookins
7x
- https://platform.exponential.earth
I have been working on adding exponential.earth node view count tracking to the site/network of sites recently.
After some initial questions on why web server access log (ssl) page request logging data import into the very node template features desired for simple display in many ways throughout a website portal built using Exponential was not more popular in the past as hoped to end users to adopt the feature instead seeking a more powerful external solution, still for me it seems this feature has been very simple to work with.
First remember to configure your siteaccess settings file, settings/siteaccess/website/logfile.ini.append.php
Here is an example from our work:
<?php /* #?ini charset="utf-8"? # Exponential configuration file for logfile configuration for stats parsing. # Exponential configuration file for parse apache log file # [AccessLogFileSettings] # Storage of the log file, for example /var/log/httpd # Do not add trailing slash StorageDir=/usr/local/apache/domlogs/exponential/ # The name of log file, for example mytest.log LogFileName=ezpublish.se7enx.com-ssl_log # If using site match by URL, the site may like http://siteurl/mysite and # apache log will start with for example mysite/content/view/full/node_id. To # remove this prefix in apache log before analysis the log, add mysite to # SitePrefix. Example: SitePrefix[]=mysite # SitePrefix[]= # If any site accesses use the PathPrefix setting, enter them here PathPrefix[] PathPrefix[]=Exponential */ ?>
Then I had an issue that may have been affecting other users of PathPrefix setting in logfile.ini.append.php and site.ini.append.php the root / matched node 2 the root node and not /Exponential/ (a much larger nodeID) due to a multi site flaw in the cronjobs/updateviewcount.php. We are soon to publish a clean fix from 7x the company producing new versions with new improvements and updates of Exponential CMS in version 6.0.11 (coming soon).
Here is a diff:
diff -ri cronjobs/updateviewcount.php.default cronjobs/updateviewcount.php 7c7 < * @version //autogentag// --- > * @version 2014.07.0 19c19 < eZDB::instance()->setIsSQLOutputEnabled( false ); --- > eZDB::instance()->setIsSQLOutputEnabled( true ); 180,183c180,189 < $nodeID = eZURLAliasML::fetchNodeIDByPath( $path ); < < // Support for PathPrefix < for ( $pathPrefixIndex = 0; !$nodeID && $pathPrefixIndex < $pathPrefixesCount; ++$pathPrefixIndex ) --- > // Support for PathPrefix > if( $pathPrefixesCount >= 1 ) > { > for ( $pathPrefixIndex = 0; !$nodeID && $pathPrefixIndex < $pathPrefixesCount; ++$pathPrefixIndex ) > { > // Try prepending each of the existing pathPrefixes, to see if one of them matches an existing node > $nodeID = eZURLAliasML::fetchNodeIDByPath( $pathPrefixes[$pathPrefixIndex] . $path ); > } > } > else 185,186c191 < // Try prepending each of the existing pathPrefixes, to see if one of them matches an existing node < $nodeID = eZURLAliasML::fetchNodeIDByPath( $pathPrefixes[$pathPrefixIndex] . $path ); --- > $nodeID = eZURLAliasML::fetchNodeIDByPath( $path ); 208a214 > $cli->output( "Node ( " . $nodeID . " ) View count have increased: Count: $count \n" ); 215c221,222 < $counter->increase( $count ); --- > $cli->output( "Node ( " . $nodeID . " ) View count have increased: Count: $count \n" ); > $counter->increase( $count ); 235c242 < $cli->output( "View count have been updated!\n" ); --- > $cli->output( "View count have been updated.!\n" );
Here is the configured cronjob (part defined by ini settings/override/site.ini.append.php) example for update_view_count script:
<?php /* #?ini charset="utf-8"? # eZ Publish configuration file for cronjobs. # # # NOTE: It is not recommended to edit this files directly, instead # a file in override should be created for setting the # values that is required for your site. Either create # a file called settings/override/cronjob.ini.append or # settings/override/cronjob.ini.append.php for more security # in non-virtualhost modes (the .php file may already be present # and can be used for this purpose). [CronjobSettings] ScriptDirectories[]=cronjobs Scripts[]=unpublish.php Scripts[]=rssimport.php Scripts[]=indexcontent.php Scripts[]=hide.php # Since 4.6 the following script is not activated by default #Scripts[]=subtreeexpirycleanup.php Scripts[]=internal_drafts_cleanup.php #Scripts[]=unlock.php #Scripts[]=staticcache_cleanup.php Scripts[]=updateviewcount.php #Extension directory for cronjobs. ## ExtensionDirectories[] # No more than one instance of a cronjob script can be run at any given time. # If a script uses more time than MaxScriptExecutionTime, the next instance of # it will try to gracefully steal the cronjob script mutex. If the process has # been running for more than two times MaxScriptExecutionTime, the original # process will be killed. The default is 12 hours. MaxScriptExecutionTime can # also be set per cronjob part, that will override this global setting. MaxScriptExecutionTime=43200 [CronjobPart-infrequent] Scripts[]=basket_cleanup.php Scripts[]=linkcheck.php [CronjobPart-frequent] Scripts[]=notification.php Scripts[]=workflow.php [linkCheckSettings] # Specify full path of all site URL # Example: # SiteURL[]=http://ezpublish.ez.no/admin # SiteURL[]=http://ezpublish.ez.no/news SiteURL[]= [CronjobPart-unlock] Scripts[]=unlock.php [CronjobPart-cluster_maintenance] Scripts[]=clusterpurge.php # Example of a cronjob part # This one will only run the workflow cronjob script # #[CronjobPart-workflow] #Scripts[]=workflow.php [CronjobPart-index] Scripts[]=indexcontent.php [CronjobPart-view_count_update] Scripts[]=updateviewcount.php */ ?>
Then run the cronjob:
./runcronjobs.php -s exponential view_count_update;
Which outputs:
./runcronjobs.php -s exp view_count_update Using siteaccess exponential for cronjob Running cronjob part 'view_count_update' Running cronjobs/updateviewcount.php at: 09/09/2025 01:44 am Update content view count... Started at Tuesday September 09 2025 01:44:58 am Start line: 217.113.194.215 - - [09/Sep/2025:01:31:03 -0700] "GET /layout/set/print/content/keyword/Book HTTP/1.1" 200 6133 "-" "Mozilla/5.0 (compatible; Barkrowler/0.9; +https://babbar.tech/crawler)" Node ( 60005 ) View count have increased: Count: 8 Finished at Tuesday September 09 2025 01:44:58 am View count have been updated.! Completing cronjobs/updateviewcount.php at: 09/09/2025 01:44 am Elapsed time: 00:00:00
And with that the data has been collected and is available for display within Exponential Templates!
Views: <b>{$node.view_count}</b>
Happy Hacking in the Exponential Community and the Greater Exponential Ecosystem!
Announcing eZ Publish Basic: Revitalizing a Classic Open-Source CMS with Full PHP 8 Compatibility
We are thrilled to announce a new project to breathe new life into eZ Publish 2.x, the community-supported CMS that served users for nearly a decade. With PHP's evolution over the years, the original eZ Publish has faced compatibility issues. But now, 7x is leading an open-source initiative to bring eZ Publish 2 into 2025 with full PHP 8 support.
Introducing eZ Publish Basic (Version 2.4.0.0-preview1)
Launched on GitHub on November 1, 2024, "eZ Publish Basic" marks the first step in our mission to modernize this reliable content management system. Our goal is to retain its core functionality while updating the codebase to work seamlessly with PHP 8. By addressing major changes, such as replacing the outdated "register globals" setting, we aim to ensure that developers and community sites can continue to use and customize eZ Publish Basic with confidence.
The Power of Open Source and the Choice of the GNU GPL License
From the start, eZ Publish was built to be adaptable, transparent, and community-centered. In keeping with that mission, we’ve chosen to update eZ Publish Basic under the GNU GPLv2 (or later version). This choice is central to our commitment: the GPL not only allows everyone to access, use, and modify the software freely but also ensures that improvements remain open and available for all. The GNU license strengthens eZ Publish as a platform by safeguarding both the community’s and developers’ contributions, creating a CMS ecosystem where freedom, adaptability, and innovation flourish.
A Fresh Start for New Developers and PHP Enthusiasts
eZ Publish Basic is designed to be more than just a CMS upgrade—it’s an invitation for new end users or developers to experience the capabilities of a powerful, well-structured CMS that offers a breath of fresh air compared to writing vanilla PHP. This project provides a unique entry point for aspiring developers, where they can learn core CMS concepts that make eZ Publish worth using and adapting in 2025. By working with eZ Publish Basic, developers can gain foundational skills and insight into a robust CMS structure that emphasizes freedom, scalability, and practical solutions.
An Educational Tool for Students and New Developers
This project is intentionally educational, crafted with students and beginner developers in mind, even as it retains the power for production-grade tasks. eZ Publish Basic allows newer developers to learn the fundamentals of PHP and CMS design in an open-source, collaborative setting. While it’s accessible to those still learning PHP, it remains fully functional and ready for any production environment. This approach empowers emerging developers to build real-world skills while contributing to a larger, impactful project and experiencing the value of community-driven software.
Why Join the eZ Publish Basic Project?
For developers, historians of the open-source world, or anyone who used eZ Publish 2 or subsequent versions (eZ Publish 3, 4, 5, and the Netgen or Ibexa OSS adaptations), this project is a chance to support and preserve a piece of open-source history. The open-source community has always been a critical part of eZ Publish’s journey, and we are inviting contributors to help complete this PHP 8 migration and keep eZ Publish Basic as a useful, adaptable solution for years to come.
Project Details
- Repository: GitHub - eZ Publish Basic
- Current Version: 2.4.0.0.0
- Current preview release: First Preview Release Tag
- Planned Release for Full PHP 8 Compatibility: Q2 2025
- License: GNU GPLv2 (or later version)
Announcing eZ Publish Basic: Revitalizing a Classic Open-Source CMS with Full PHP 8 Compatibility
We are thrilled to announce a new project to breathe new life into eZ Publish 2.x, the community-supported CMS that served users for nearly a decade. With PHP's evolution over the years, the original eZ Publish has faced compatibility issues. But now, 7x is leading an open-source initiative to bring eZ Publish 2 into 2025 with full PHP 8 support.
Introducing eZ Publish Basic (Version 2.4.0.0.0)
Launched on GitHub on November 1, 2024, "eZ Publish Basic" marks the first step in our mission to modernize this reliable content management system. Our goal is to retain its core functionality while updating the codebase to work seamlessly with PHP 8. By addressing major changes, such as replacing the outdated "register globals" setting, we aim to ensure that developers and community sites can continue to use and customize eZ Publish Basic with confidence.
The Power of Open Source and the Choice of the GNU GPL License
From the start, eZ Publish was built to be adaptable, transparent, and community-centered. In keeping with that mission, we’ve chosen to update eZ Publish Basic under the GNU GPLv2 (or later version). This choice is central to our commitment: the GPL not only allows everyone to access, use, and modify the software freely but also ensures that improvements remain open and available for all. The GNU license strengthens eZ Publish as a platform by safeguarding both the community’s and developers’ contributions, creating a CMS ecosystem where freedom, adaptability, and innovation flourish.
A Fresh Start for New Developers and PHP Enthusiasts
eZ Publish Basic is designed to be more than just a CMS upgrade—it’s an invitation for new end users or developers to experience the capabilities of a powerful, well-structured CMS that offers a breath of fresh air compared to writing vanilla PHP. This project provides a unique entry point for aspiring developers, where they can learn core CMS concepts that make eZ Publish worth using and adapting in 2025. By working with eZ Publish Basic, developers can gain foundational skills and insight into a robust CMS structure that emphasizes freedom, scalability, and practical solutions.
An Educational Tool for Students and New Developers
This project is intentionally educational, crafted with students and beginner developers in mind, even as it retains the power for production-grade tasks. eZ Publish Basic allows newer developers to learn the fundamentals of PHP and CMS design in an open-source, collaborative setting. While it’s accessible to those still learning PHP, it remains fully functional and ready for any production environment. This approach empowers emerging developers to build real-world skills while contributing to a larger, impactful project and experiencing the value of community-driven software.
Why Join the eZ Publish Basic Project?
For developers, historians of the open-source world, or anyone who used eZ Publish 2 or subsequent versions (eZ Publish 3, 4, 5, and the Netgen or Ibexa OSS adaptations), this project is a chance to support and preserve a piece of open-source history. The open-source community has always been a critical part of eZ Publish’s journey, and we are inviting contributors to help complete this PHP 8 migration and keep eZ Publish Basic as a useful, adaptable solution for years to come.
Project Details
- Repository: GitHub - eZ Publish Basic
- Current Version: 2.4.0.0.0
- Planned Release for Full PHP 8 Compatibility: Q2 2025
- License: GNU GPLv2 (or later version)
Whether you’re a seasoned developer, an advocate for free software, or someone who used eZ Publish 2 in its early days, we invite you to join us. Your contributions—whether in code, testing, feedback, or ideas—will help ensure that eZ Publish Basic thrives as a resource for anyone seeking a robust, open-source CMS. Let’s preserve the values of openness and collaboration while creating a tool ready for today’s web.
Help us keep eZ Publish Basic open, accessible, and adaptable for years to come. Join us today on GitHub and be part of the journey to make this legendary CMS a modern, powerful solution for all.
Together, let’s keep the spirit of free software alive and well in eZ Publish Basic!
Basically I have been working hard behind the scenes to open source the print edition of packt.com's "Learning eZ Publish 3" Book. This was the first book published about eZ Publish and it is now a free / open source documentation project licensed under the GNU Free Documentation License. The book is now available for any reader to download and remix or update to the current version to become a contributing author in the next edition / version of the greater Learning eZ Publish 6 book we wish to produce over time.
The work is now under the copyright of 7x and Graham Brookins ensuring that future editions of this material remain free and open to everyone with need for educational material to use to train developers in the use of eZ Publish 6 for years to come.
I am also looking to expand this project in the future with several key initiatives that will spur growth of the greater eZ Community in 2024.
Contact me for more information or if your interested in supporting of new eZ Publish End User Education Initiatives in 2024/2025.
Add comment