Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

PHP 8 Compatibitility 24 Mar 2022 03:03 #15930

There are going to be a few PHP 8 incompatibilties - so this is probably the place to note them down.
Please add to this list if you find any ... JCook is not being developed anymore - so we need to help each other to keep our older websites running.

If you upgrade to PHP 8 and your whole website goes down... its is probably line 384 in libraries/jdom.php (which is loaded for eevry page).

If you swicth on the Joomla Degug mode, you will see this error...
"count(): Argument #1 ($value) must be of type Countable|array, null given"
This is because a emplty variable, a non-array, is being used with the count function.

In libraries/jdom edit file jdom.php line 384

Change
else if (($i !== null) && (count($args) > $i))

to
else if ($i !== null)
Just call me Chris :)

Please Log in or Create an account to join the conversation.

Last edit: by organicwebs.

PHP 8 Compatibitility 24 Mar 2022 03:14 #15931

Now, after this first hurdle... when you go to create a New item, you'll get the same error. This is another bug in the item controller.

In /public_html/administrator/components/com_yourcomponent/classes/controller/item.php Line 240

Change:
if (!count($cid))

To
if (empty($cid))
Just call me Chris :)
The following user(s) said Thank You: jonathanbell

Please Log in or Create an account to join the conversation.

PHP 8 Compatibitility 30 May 2022 12:55 #15940

Good work :)

Please Log in or Create an account to join the conversation.

PHP 8 Compatibitility 04 Jan 2023 10:31 #15944

  • liubov
  • liubov's Avatar
  • Offline
  • Elite Member
  • Elite Member
  • (=) 10 mn and it's ready!
  • Posts: 279
  • Thank you received: 36
Hi Chris,
Thanks a lot for this.
I've also a warning (error report : Dev) in the next line 385.
Did you change anything, or never mind ?
if ($args[$i] !== null)
Warning: Trying to access array offset on value of type null in /home2/user_xxx/public_html/my_site/libraries/jdom/dom.php on line 385
change to
if (!empty($args[$i]) )

Please Log in or Create an account to join the conversation.

Last edit: by liubov.

PHP 8 Compatibitility 04 Jan 2023 17:10 #15945

  • liubov
  • liubov's Avatar
  • Offline
  • Elite Member
  • Elite Member
  • (=) 10 mn and it's ready!
  • Posts: 279
  • Thank you received: 36
To be continue...
Please find below a few code corrections to upgrade PHP8 version with your J-Cook component:

libraries/jdom/dom.php:384
else if ($i !== null) 
        if (!empty($args[$i]) )

administrator/components/com_mycomponent/classes/controller/item.php:240
if (empty($cid))

administrator/components/com_mycomponent/classes/model/list.php:328
protected function belongsToMany($name, $foreignModelClass, $localKey, $foreignKey, $pivot, $pivotLocalKey, $pivotForeignKey, $selectFields = array(), $raw = false)

administrator/components/com_mycomponent/helpers/menu.php:61
public static function addSubmenu($name, $view, $layout)

Please Log in or Create an account to join the conversation.

Last edit: by liubov.
  • Page:
  • 1
Time to create page: 0.063 seconds

This is what you call a component builder. I was able to master using this in a very short time and the resulting component works like a charm. Not just a basic component builder but a fully working component builder with forms fields tables all ready to go. You can make the list and item views to display in the front and back end. Also there is a great forum just starting to evolve and I'm sure this will grow very rapidly when you all realise how good this tool is.
Kevin (JED)

         

Get Started