Buy Now
Sign in

Chronoforms with PHP8 and Joomla 4

Elitakey 370
October 09 2021, 05:35 #397215
hello to ALL Chronoforms community!

It seems that Max, as far as I know - the only developer of Chronoforms has dissapeared for almost 5 months now... Last time I heard from him was May.
So far for that there is Joomla4 and PHP8 already introduced;
I would like to suggest all the community to join hands and help Chronoforms to live further till Max will be able to take over.

Many of members have huge (including me) projects realized with Chronoforms that is still the most poverful, user - friendly tool. I must admit that last couple of months I have been searching for similar tool - and did not find any - there is not such tool available!!!
So - my suggestion is - lets everybody make an effort to give Chronoforms to live further.

Here are my findings so far:

1. There are some minor changes (code hacks) needed (at least I found so far; still testing) to switch to PHP 8; that I will describe later;
2. Joomla 3.10.x versions are transitions from Joomla 3 to Joomla 4 - that means that it contains BOTH new and depreciated code AND will be supported for 2 more years (August 17, 2023). Til then, hope, Max will be back.
3. Joomla 4 have many major changes and needs further investigation of CF code to make it work; still hope that Max will soon take over; till then any knowledge of the CF community would be appreciated; We can post here or make another post to share our findings.

About the hacks to continue CF working on PHP8:

1. the error "Call to undefined function get_magic_quotes_gpc() "

locate folder /libraries/cegcore2

open gcloader.php

comment block (line 63-71):

function stripslashes_gpc(&$value){
$value = stripslashes($value);
array_walk_recursive($_GET, 'stripslashes_gpc');
array_walk_recursive($_POST, 'stripslashes_gpc');
array_walk_recursive($_COOKIE, 'stripslashes_gpc');
array_walk_recursive($_REQUEST, 'stripslashes_gpc');

2. then you'll get the error "Attempt to modify property "_vars" on null"

open /libraries/cegcore2/libs/helper.php

find and comment two lines:

$this->_vars = &$view->_vars;
$this->data = &$view->data;

replace with:

$this->_vars = "";
if(isset($view->_vars ) && $view->_vars != ""){
$this->_vars = &$view->_vars;
$this->data = "";
if(isset($view->data ) && $view->data != ""){
$this->data = &$view->data;

Unfortunately after installing Connectivity you will have to perform same actions again;

3. to minimize error on view form "Attempt to modify property "_vars" on null"

open /libraries/cegcore2/libs/composer.php

find and comment line
$this->_vars = &$app->_vars;

replace with:

$this->_vars = "";
if(isset($app->_vars ) && $app->_vars != ""){
$this->_vars = &$app->_vars;

That is all i found by now.

Let you know if there is something else.

NB! this is for CF6 and CCv6 only; however I do believe this will work for Cf7 too.
The only difference is that cegcore2 there is called chronog3 and is located in /plugins/system/chronog3_plg/chronog3/libs

Please, correct me and add your findings.
Still hope Max will join us soon!!!

Colnem 62
October 10 2021, 08:36 #397216
Thanks Elita
I search on my side.
I've just found the first fix ("cegcore2\gxcloader") to log as admin: replacing "get_magic_quotes_gpc() " by "PHP_VERSION_ID < 50400 && get_magic_quotes_gpc()"
I can't try all your job because I've another plugin with bugs under PHP8...
Elitakey 370
October 14 2021, 08:48 #397244
with PHP8
Error that occurs with backup download (both CF6 and CCv6):
preg_replace() expects at least 3 arguments, 2 given
found that arguments should be - preg_replace($patterns, $replacements, $string)
Maxe's code:
starting at line 371
starting at line 188
 if(preg_replace('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])){
$UserBrowser = 'Opera';
}elseif(preg_replace('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])){
$UserBrowser = 'IE';
$UserBrowser = '';
should contain argument $replacements
I simply added argument ' ' - seems to be working;
not quite sure why Max put this all code on a first place - why check for Opera and IE for file download?
Perhaps this code could be minimized?
the working code is as follows:
 if(preg_replace('Opera(/| )([0-9].[0-9]{1,2})',' ', $_SERVER['HTTP_USER_AGENT'])){
$UserBrowser = 'Opera';
}elseif(preg_replace('MSIE ([0-9].[0-9]{1,2})',' ', $_SERVER['HTTP_USER_AGENT'])){
$UserBrowser = 'IE';
$UserBrowser = '';
Elitakey 370
October 15 2021, 09:04 #397251
Hi, thanks for the input. My opinion ist that there is no need to care about the depreciated php versions, so my suggestion is to delete or comment all the code that refers to get_magic_quotes. do you think we should?
Colnem 62
October 18 2021, 14:49 #397257
I presume we have to replace "preg_replace" by "preg_match"...
I'll try later...
admin 33
December 03 2021, 19:34 #397508
v7 should be now J4 and PHP8 ready!
Colnem 62
December 04 2021, 07:17 #397509
Thanks, Max, for this job.
Two questions:
1 - Are CF6 and CV6 ready for PHP8?
2 - In CF7 (ready for J4), is the SSQL "NOT IN" bug fixed?
Colnem 62
December 04 2021, 13:29 #397510
Beware, guys!
The bug with SQL 'NOT IN' condition is not fixed in PHP8/Joomla4 version.
Look at this topic:
Colnem 62
December 05 2021, 13:37 #397513
There is a big bug with SQL WHERE CONDITION:
If you modify one condition, all yours conditions disappear when closing and opening the form!
I've tried, under PHP7.3 and Joomla 3.X, with the Demo form Basic Article List and I confirm this bug.
typomaniac 44
December 06 2021, 15:29 #397521
Hi Max
does this mean that the download section now delivers the J4-ready version? I'm a bit confused, as in the dropdown, there still are just the options J3 and WP.
Could you somehow open a new forum category about the ongoing J4 project? Would be great. It's a bit difficult to find news about this.
Thanks so much
b.t.w. So great to have you back!!!!